繁体   English   中英

文本字段输入更改时触发延迟更改事件

[英]Fire deferred change event when text field input changes

根据jQuery API

更改事件在其值更改时发送到元素。 此事件仅限于<input>元素, <textarea>框和<select>元素。 对于选择框,复选框和单选按钮,当用户使用鼠标进行选择时会立即触发该事件,但是对于其他元素类型,该事件将推迟到该元素失去焦点之前。

有没有一种方法可以使文本字段和文本区域在更改输入文本时(不仅是在失去焦点时)触发事件?

您正在寻找html5 input事件

$(…).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;
        …
    }
});

像这样使用keyup

http://api.jquery.com/keyup/

$( "#target" ).keyup(function() {
  alert( "Handler for .keyup() called." );
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM