【问题标题】:Activate onchange after changing content with javascript使用 javascript 更改内容后激活 onchange
【发布时间】:2011-10-21 16:27:58
【问题描述】:

当输入值被javascript改变时,为什么不激活输入的onChange函数?例如为什么点击按钮时不会发生警报?

<html>
<body>
<input type="text" id="myInput" onchange="alert(1)" />
<button onclick = "document.getElementById('myInput').value = 'ads'">click</button>
</body>    
</html>

那我怎样才能使 onchange 函数起作用呢?

编辑: 我现在明白事件不会自动触发,我该如何调用它(jquery)?

【问题讨论】:

  • 以编程方式更改值时不会触发change 事件......就是这样。

标签: javascript jquery


【解决方案1】:

脚本值更改不会触发事件。您必须手动触发事件。

jQuery:$('#myInput').trigger('change');

将以下代码添加到onchange 事件中:

var input = document.getElementById("myInput");
if(input.fireEvent) input.fireEvent("onchange");
else {
    var ev = document.createEvent('HTMLEvents');
    ev.initEvent("change", true, false);
    input.dispatchEvent(ev);
}

所以,结合你的代码(你实际上应该将 JS 代码与 HTML 分开):

<button onclick="var input = document.getElementById('myInput');input.value = 'ads';if(input.fireEvent)input.fireEvent('onchange');else{var ev=document.createEvent('HTMLEvents');ev.initEvent('change',true,false);input.dispatchEvent(ev);}">click</button>

【讨论】:

    猜你喜欢
    • 2018-04-06
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多