jQuery - 当用户正在输入或粘贴时,如何检测文本变化

25

我对jQuery还不熟悉,尝试做了些东西,但失败了,这是我的问题:当用户输入时它有效,但当用户粘贴时无效!!

$(document).ready(function(){

        $('#username').keyup(username_check);
});

用户名检查函数:

function username_check(){  
var username = $('#username').val();
if(username == "" || username.length < 4){
alert("error");
}

领域:

<input type="text" id="username" name="username" required>

可能是重复的问题:如何在粘贴事件中捕获输入值? - GillesC
2个回答

40

如果您想捕获所有的 input 事件:

$('#username').on("input", username_check);

2
这对我来说完美地运作了。当有人在文本框中输入任何内容时,我想要打开一个按钮。移除了“on change”监听器并添加了这个。 - chrisallick
1
IE9虽然不完全支持该事件(https://caniuse.com/#feat=input-event)。 - Kenston Choi

25

使用.on().bind()来绑定多个事件,

$(document).ready(function(){
   $('#username').on('keyup paste',username_check);
});


function username_check(){ 
    setTimeout( function() {
        var username = $('#username').val();
    },100);
    if(username == "" || username.length < 4){
      alert("error");
    }
}

可运行的示例


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接