这看起来很简单,但谷歌没有为我找到任何东西:
如何仅绑定(bind)到文本/值更改事件,不包括获得焦点的输入?即,给出以下内容:
$(function(){
$('input#target').on('keyup', function(){
alert('Typed something in the input.');
});
});
...当用户跳入和跳出元素时将触发警报,无论他们是否实际输入文本。除非用户在文本字段中输入/更改文本,否则如何允许用户通过键盘在表单中导航而不触发事件?
注意:我展示的是脚本的简化版本,不使用 change
事件的原因是在我的真实代码中我有一个延迟计时器,所以该事件在用户停止输入一秒钟后发生,他们无需改变焦点即可触发该事件。
最佳答案
存储值,并在任何关键事件上检查它是否已更改,如下所示:
$(function(){
$('input#target').on('keyup', function(){
if ($(this).data('val')!=this.value) {
alert('Typed something in the input.');
}
$(this).data('val', this.value);
});
});
关于javascript - jQuery 只绑定(bind)到 keyup,而不是焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10159016/