小编典典

检测到对所有更改 (立即)使用JQuery

javascript

<input type="text">罐的价值有多种变化方式,包括:

  • 按键
  • 复制粘贴
  • 用JavaScript修改
  • 通过浏览器或工具栏自动完成

我希望我的JavaScript函数在每次更改时都能被调用(使用当前输入值)。我希望立即调用它,而不仅仅是输入失去焦点时。

我正在寻找最干净,最可靠的方法来在所有浏览器中做到这一点(最好使用jQuery)。


阅读 226

收藏
2020-04-25

共1个答案

小编典典

不幸的是,我认为setInterval赢得了大奖:

<input type=text id=input_id />
<script>
setInterval(function() { ObserveInputValue($('#input_id').val()); }, 100);
</script>

这是最干净的解决方案,只需一行代码。它也是最强大的,因为您不必担心所有不同的事件/方式input都可以获取价值。

在这种情况下,使用’setInterval’的缺点似乎并不适用:

  • 100ms的延迟? 对于许多应用而言,100ms足够快。
  • 在浏览器上增加了负载? 通常,在页面上添加很多重量级的setIntervals是不好的。但是在这种特殊情况下,无法检测到增加的页面加载。
  • 它不能扩展到很多输入吗? 大多数页面没有几个输入,您可以在同一setInterval中嗅探所有输入。
2020-04-25