如何检测意外鼠标操作引起的输入变化?

How to detect input's changes from unexpected mouse actions?

我有一个输入字段需要在发送表单之前进行验证。

所以我在这个字段上绑定了一个 keyup 事件,它发送一个 XmlHttpRequest,然后我在我的 ihm 上显示结果。它工作正常。

但是现代浏览器提供了一些其他方式来将信息添加到输入字段中:

我尝试了各种事件来检测它们,但没有人(当然不包括 keyup)被触发。

$('#theForm').on('keyup', '.url', checkUrl);
$('#theForm').on('changes', '.url', checkUrl);
$('#theForm').on('click', '.url', checkUrl);

是否可以检测到这些事件?

我的目标浏览器是 Firefox 17。

您可以使用 input 事件检测该事件:

$('#theForm').on('input', '.url', checkUrl);

fiddle 测试:http://jsfiddle.net/t8exjuq2/

点击那个:

(提交 fiddle 的输入一次以获得工具提示)

编辑 :: 在 firefox 22.0 和 chrome

中测试

此外,请注意 change 事件将监听除此之外的几乎所有内容。

最终编辑::

关于 paste,您可以使用.... paste :

检测该事件
$('#theForm').on('paste', '.url', checkUrl);

http://jsfiddle.net/490gz5vy/