小编典典

JQuery:检测输入字段的变化

all

我想检测用户的键盘操作何时改变文本字段的值。它应该在现代浏览器中始终如一地工作。

.keypress 事件的 JQuery 页面说它不一致?此外,它不适用于退格、删除等。

我不能使用 .keydown ,因为它会对 shift、alt 和箭头键等作出反应。此外,当用户按住一个键并插入多个字符时,它不会多次触发。

有没有我想念的简洁方法?或者我应该使用 .keydown 并过滤掉由箭头键、shift
等触发的事件?我主要担心的是会有一些我不知道应该被过滤的键。(我几乎忘记了 alt 和
ctrl,我想可能还有其他人)但是我将如何检测被按住并插入多个字符的键呢?

作为奖励,它会检测到由于粘贴(包括右键单击)而导致的更改,但我从这里有解决方案。


阅读 62

收藏
2022-05-16

共1个答案

小编典典

您可以将“输入”事件绑定到文本框。 每次 输入更改时都会触发,因此当您粘贴某些内容(即使右键单击)时,删除并键入任何内容。

$('#myTextbox').on('input', function() {
    // do something
});

如果您使用change处理程序,这只会在用户取消选择输入框后触发,这可能不是您想要的。

这里有一个例子:http: //jsfiddle.net/6bSX6/

2022-05-16