[英]Cross-browser JavaScript input live change/paste detection
是否有跨浏览器的方式来检测输入字段的实时更改?
通过live ,我的意思不是当字段失去焦点时,而不是在下一次按键时,等等。 立即或类似的东西。
使用 jQuery 和.change()
、 .keyup()
、 .bind('paste')
等的组合,我可以在某些浏览器中进行实时更改检测,但不是所有. 使用不同的组合会使它在其他浏览器中有些作用。
最棘手的工作是输入字段的鼠标操作- 选择文本并移动它(本质上是剪切和粘贴),右键单击并粘贴或剪切等。出于某种原因,甚至.mousedown()
和.mouseup()
似乎没有削减它。
我现在能想到的唯一跨浏览器解决方案是每 100 毫秒左右检查一次输入字段值,并将该值与存储的值进行比较。 但是当基于事件的解决方案如此接近时,这似乎有点矫枉过正。
是否有一个 jQuery 插件可以做到这一点? 还是有其他方法可以实现这一目标?
要完成更改和键处理程序,您可以为cut/copy/paste添加处理程序。 它们适用于 Firefox >=3、IE、Safari 和 Chrome(但不适用于 Opera/Konqueror)。
这会涵盖您的用例的所有内容吗?
根据您需要支持的浏览器,您可能会使用 HTML5 的oninput 。
当受监控的输入发生变化时,它会立即触发。 在 jQuery 中,您只需执行以下操作:
$('#my-input').bind('input', function(e) {
console.log("#my-input's value changed");
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.