是否有跨浏览器方式来检测输入字段的实时更改?
通过 live ,我的意思是当该字段失去焦点时,而不是在下一个按键时,等等。马上或类似的东西。
使用jQuery和.change()
,.keyup()
,.bind('paste')
等组合,我可以在某些浏览器中进行实时更改检测,但不是全部。使用不同的组合将使其在其他浏览器中有所作为。
最棘手的工作是输入字段的鼠标操作 - 选择文本并移动它(基本上是剪切和粘贴),右键单击并粘贴或剪切等等。甚至.mousedown()
和.mouseup()
似乎没有削减它的原因。
我现在能想到的唯一跨浏览器解决方案是每隔100毫秒检查输入字段值,并将值与存储值进行比较。 但是当基于事件的解决方案如此接近时,这似乎有点过分。
是否有一个jQuery插件可以执行此操作?或者还有其他方法可以实现这一目标吗?
答案 0 :(得分:2)
要完成更改和键处理程序,您可以为cut/copy/paste添加处理程序。它们适用于Firefox> = 3,IE,Safari和Chrome(但不适用于Opera / Konqueror)。
这会涵盖您用例的所有内容吗?
答案 1 :(得分:1)
根据您需要支持的浏览器,您可以使用HTML5的oninput 当监视的输入发生变化时,它会立即触发。在jQuery中你只需:
$('#my-input').bind('input', function(e) {
console.log("#my-input's value changed");
});