如何检测意外鼠标操作引起的输入变化?
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);
我有一个输入字段需要在发送表单之前进行验证。
所以我在这个字段上绑定了一个 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);