我想要检测用户的键盘操作何时会改变文本字段的值。它应该在现代浏览器中一致地工作。
.keypress事件的JQuery页面显示不一致?此外,它不适用于退格键、删除键等。
我不能使用.keydown,因为它对shift、alt和箭头键等做出反应。而且,当用户按住一个键并插入多个字符时,它不会触发一次以上。
有没有我遗漏的简明方法?或者我应该使用.keydown并过滤掉由箭头键、shift等触发的事件?我主要担心的是会有一些我不知道的键应该被过滤掉。(我几乎忘记了alt和ctrl,我想可能还有其他的),但是我怎么才能检测按住并插入多个字符的键呢?
作为一个额外的好处,它可以检测到由于粘贴(包括右键单击)而产生的变化,但我从here那里得到了解决方案。
发布于 2012-10-09 18:18:13
使用$.on()
将您选择的事件绑定到输入,不要使用$.keydown()
等快捷方式,因为从jQuery 1.7开始,$.on()
是附加事件处理程序的首选方法(请参阅此处:http://api.jquery.com/on/和http://api.jquery.com/bind/)。
$.keydown()
只是通向$.bind('keydown')
的捷径,而$.bind()
则是$.on()
的替代品(其中包括)。
为了回答你的问题,据我所知,除非你特别需要在keydown
上触发一个事件,否则change
事件应该可以帮你完成这个任务。
$('element').on('change', function(){
console.log('change');
});
为了回应下面的评论,这里记录了javascript change
事件:https://developer.mozilla.org/en-US/docs/Web/Events/change
下面是使用jQuery:http://jsfiddle.net/p1m4xh08/处理输入元素的change
事件的工作示例
发布于 2012-10-09 18:14:32
您可以使用jQuery change()函数
$('input').change(function(){
//your codes
});
下面是如何在API页面上使用它的示例:http://api.jquery.com/change/
https://stackoverflow.com/questions/12797700
复制相似问题