【发布时间】:2019-01-02 19:34:52
【问题描述】:
我能够检测输入在键入、粘贴等时是否更改了值,但如果值从另一个脚本动态更改,我无法检测到它:
假设我有一个输入
<input id="testInput" value="Type Here" />
如果值通过键入而改变,我想提醒“已更改”
$('#testInput').on('input', function(){
alert("changed");
});
这可行,但如果值从另一个脚本动态更改,我无法触发警报:
$('#testInput').val("Dynamic Value"); //This doesn't show the alert
我希望能够通过键入、粘贴或从脚本或操作动态检测值是否发生了变化。
.val() 正在许多不同的地方执行,因此无法将整个代码中的.val() 更改为.val().trigger("change") 之类的其他内容。
这是一个带有更好示例的 jsfiddle:
【问题讨论】:
-
input paste keyup change===input -
@Ele,感谢您的更正。
-
@FrankerZ .val() 可能会执行的地方很多,我不想更改每一个 .val(),我只想检测它何时执行,谢谢
-
@multimediaxp 这并不是每个
.val()都会改变的。这覆盖了 jQuery 中的主要.val()函数。
标签: javascript jquery input dynamic triggers