Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中编辑html输入字段值不会触发(';change';,…)函数_Javascript_Html - Fatal编程技术网

在javascript中编辑html输入字段值不会触发(';change';,…)函数

在javascript中编辑html输入字段值不会触发(';change';,…)函数,javascript,html,Javascript,Html,我有一个dblclick侦听器,它将值添加到html输入字段中。我还有一个on change函数,当html输入字段中的值发生变化时,应该启用提交按钮。但是,sblclicking(因此在输入字段中添加值)不会启用submit按钮。但是,如果我在输入字段中单击并手动编辑值,则该按钮将启用 是否有一种变通方法,使dblclick侦听器也可以触发on change函数 document.addEventListener(“dblclick”,function()){ document.getEle

我有一个dblclick侦听器,它将值添加到html输入字段中。我还有一个on change函数,当html输入字段中的值发生变化时,应该启用提交按钮。但是,sblclicking(因此在输入字段中添加值)不会启用submit按钮。但是,如果我在输入字段中单击并手动编辑值,则该按钮将启用

是否有一种变通方法,使dblclick侦听器也可以触发on change函数

document.addEventListener(“dblclick”,function()){
document.getElementById(“name”).value=“Hello World!”;
});
document.getElementById(“名称”).onchange=function(){
document.getElementById(“发送”).disabled=false;
}

是否尝试将
onchange
方法添加到初始函数中

例如:

     document.getElementById("name").onchange = function() {
    document.getElementById("send").disabled = false;
}

document.addEventListener("dblclick", function(){
    document.getElementById("name").value = "Hello World!";
    if ("createEvent" in document) {
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent("change", false, true);
        document.getElementById("name").dispatchEvent(evt);
    }
    else
        document.getElementById("name").fireEvent("onchange");
});

使用
oninput
而不是
change

document.addEventListener("dblclick", function() {
  document.getElementById("name").value = "Hello World!";
});
document.getElementById("name").oninput = function() {
  document.getElementById("send").disabled = false;
}


<input id="name" type="text">
<input type="submit" id="send" value="Submit" disabled>
document.addEventListener(“dblclick”,function()){
document.getElementById(“name”).value=“Hello World!”;
});
document.getElementById(“名称”).oninput=function(){
document.getElementById(“发送”).disabled=false;
}

这里

通常由javascript修改的属性不会触发html更改事件

因此,您可以从change处理程序和doubleclick处理程序调用激活按钮的代码。如果代码更复杂,您可以将其包装在一个函数中,并从两个处理程序调用它

document.addEventListener("dblclick", function(){
    document.getElementById("name").value = "Hello World!";
    document.getElementById("send").disabled = false;
});

document.getElementById("name").onchange = function() {
    document.getElementById("send").disabled = false;
}

你可以这样做

document.getElementById(“名称”).onchange=function(){
document.getElementById(“发送”).disabled=false;
}
document.addEventListener(“dblclick”,function()){
document.getElementById(“name”).value=“Hello World!”;
如果(文档中的“createEvent”){
var evt=document.createEvent(“HTMLEvents”);
evt.initEvent(“变更”、假、真);
document.getElementById(“名称”).dispatchEvent(evt);
}
其他的
document.getElementById(“名称”).fireEvent(“onchange”);
});

您可以在document
dblclick
上的元素上创建要分派的事件。也可以使用
oninput
代替
onchange
,如下所示:

document.addEventListener(“dblclick”,function()){
document.getElementById(“name”).value=“Hello World!”;
var event=document.createEvent('event');
initEvent('input',true,true);
document.getElementById(“名称”).dispatchEvent(事件);
});
document.getElementById(“名称”).oninput=function(){
document.getElementById(“发送”).disabled=false;
}

动态更改输入值需要显式生成事件

var el=document.getElementById('name'))
el.value=‘某物’;
el.调度事件(新事件(“变更”)


注意:如果手动编辑输入字段,则必须单击输入字段的“关闭”按钮才能启用“提交”按钮!!这是不应该的。