更改事件在其值更改时发送到元素。此活动仅限于
<input>
元素,<textarea>
框和<select>
元素。对于选择框,复选框和单选按钮,当用户使用鼠标进行选择时会立即触发事件,但对于其他元素类型,事件将延迟,直到元素失去焦点。
有没有办法让文本字段和文本区域在输入文本发生更改时触发事件,而不仅仅是在它们失去焦点时?
答案 0 :(得分:3)
您正在寻找html5 input
event:
$(…).on("input", function(e) {…});
但是,它在旧版浏览器中不起作用。您可以挂钩多个事件(最相关的keyup
),并在每个事件上激活您的侦听器。如果您正在进行相当繁重的计算,那么您应该只过滤那些导致实际变化的事件:
var val;
$(…).on("input change keyup keypress cut paste mouseup focus blur", function(e) {
if (this.value !== val)
val = this.value;
…
}
});
答案 1 :(得分:2)
使用像这样的密钥
$( "#target" ).keyup(function() {
alert( "Handler for .keyup() called." );
});