我想检测用户的键盘操作何时改变文本字段的值。它应该在现代浏览器中始终如一地工作。
.keypress 事件的 JQuery 页面说它不一致?此外,它不适用于退格、删除等。
我不能使用 .keydown ,因为它会对 shift、alt 和箭头键等作出反应。此外,当用户按住一个键并插入多个字符时,它不会多次触发。
有没有我想念的简洁方法?或者我应该使用 .keydown 并过滤掉由箭头键、shift 等触发的事件?我主要担心的是会有一些我不知道应该被过滤的键。(我几乎忘记了 alt 和 ctrl,我想可能还有其他人)但是我将如何检测被按住并插入多个字符的键呢?
作为奖励,它会检测到由于粘贴(包括右键单击)而导致的更改,但我从这里有解决方案。
您可以将“输入”事件绑定到文本框。 每次 输入更改时都会触发,因此当您粘贴某些内容(即使右键单击)时,删除并键入任何内容。
$('#myTextbox').on('input', function() { // do something });
如果您使用change处理程序,这只会在用户取消选择输入框后触发,这可能不是您想要的。
change
这里有一个例子:http: //jsfiddle.net/6bSX6/