在javascript中编辑html输入字段值不会触发(';change';,…)函数
我有一个dblclick侦听器,它将值添加到html输入字段中。我还有一个on change函数,当html输入字段中的值发生变化时,应该启用提交按钮。但是,sblclicking(因此在输入字段中添加值)不会启用submit按钮。但是,如果我在输入字段中单击并手动编辑值,则该按钮将启用 是否有一种变通方法,使dblclick侦听器也可以触发on change函数在javascript中编辑html输入字段值不会触发(';change';,…)函数,javascript,html,Javascript,Html,我有一个dblclick侦听器,它将值添加到html输入字段中。我还有一个on change函数,当html输入字段中的值发生变化时,应该启用提交按钮。但是,sblclicking(因此在输入字段中添加值)不会启用submit按钮。但是,如果我在输入字段中单击并手动编辑值,则该按钮将启用 是否有一种变通方法,使dblclick侦听器也可以触发on change函数 document.addEventListener(“dblclick”,function()){ document.getEle
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”);
});代码>
您可以在documentdblclick
上的元素上创建要分派的事件。也可以使用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.调度事件(新事件(“变更”)代码>
注意:如果手动编辑输入字段,则必须单击输入字段的“关闭”按钮才能启用“提交”按钮!!这是不应该的。