我想在我的一个字段(文本框)发生变化时触发一个函数。问题是:该文本框的内容由外部脚本(我无权访问)自动归档,因此onChange监听器不会触发。我已经尝试了很多代码,但这里有两个最接近(我认为?)的结果:这是脚本和字段<script async src="SomeNiceScriptHere.js"></script><input type="text" name="wt_embed_output" id="wt_embed_output" class="wt_embed_output"/>代码1:function myFunction() {
var x = document.getElementById("wt_embed_output").value;
alert("The input value has changed. The new value is: " + x);}
document.getElementById("wt_embed_output").addEventListener("change", myFunction);代码2:$( "#wt_embed_output" ).change(function() {
alert( "Value has been changed" );});目前,当使用脚本更新值时它不起作用,它仅在用户手动更改值时有效。有谁知道这样做的方法?
2 回答
一只萌萌小番薯
TA贡献1795条经验 获得超7个赞
onchange
仅当用户提交对input元素的更改时才会发生,大多数情况下,这是元素失去焦点时。
尝试使用oninput
事件;
如果这不起作用,您可以使用适用于所有情况的解决方案:使用设置计时事件 setInterval()
墨色风雨
TA贡献1853条经验 获得超6个赞
尝试在中添加事件侦听器input
。
var el = document.getElementById('wt_embed_output');
el.value = 'New Value'
el.dispatchEvent(new Event('oninput'));
document.getElementById("wt_embed_output").addEventListener("oninput", myFunction());
function myFunction() {
var x = document.getElementById("wt_embed_output").value;
alert("The input value has changed. The new value is: " + x);
}
<input type="text" name="wt_embed_output" id="wt_embed_output" class="wt_embed_output" />
添加回答
举报
0/150
提交
取消