跨浏览器JavaScript输入实时更改/粘贴检测

时间:2010-06-20 15:15:15

标签: javascript jquery javascript-events input

是否有跨浏览器方式来检测输入字段的实时更改

通过 live ,我的意思是当该字段失去焦点时,而不是在下一个按键时,等等。马上或类似的东西。

使用jQuery和.change().keyup().bind('paste')等组合,我可以在某些浏览器中进行实时更改检测,但不是全部。使用不同的组合将使其在其他浏览器中有所作为。

最棘手的工作是输入字段的鼠标操作 - 选择文本并移动它(基本上是剪切和粘贴),右键单击并粘贴或剪切等等。甚至.mousedown().mouseup()似乎没有削减它的原因。

我现在能想到的唯一跨浏览器解决方案是每隔100毫秒检查输入字段值,并将值与存储值进行比较。 但是当基于事件的解决方案如此接近时,这似乎有点过分

是否有一个jQuery插件可以执行此操作?或者还有其他方法可以实现这一目标吗?

2 个答案:

答案 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");
});
相关问题