如果输入为空,则jQuery输入事件不会触发

Eri*_* J. 5 jquery javascript-events

我有一个jQuery事件处理程序,可以响应每个更改

<input id="myId" type="text" /> 
Run Code Online (Sandbox Code Playgroud)

元件:

$("#myId").bind('input', function (e) {    
        // Do Stuff
    });
Run Code Online (Sandbox Code Playgroud)

这非常有效,除非输入#myId为空(例如输入框中只有1个字符,我用Backspace删除它).如果输入变空,则事件不会触发.如果我然后输入一个角色,事件就会触发.

这是一个已知的问题?难道我做错了什么?输入变空时以何种方式获取事件?

更新

输入Backspace时,事件不会触发,至少在IE9中.

Kri*_*ian 8

据我所知,"输入"不是你想要使用的事件.由于"输入"类似于"更改",因此当您的字符串接近0个字符时,它往往会产生错误的结果,keyup而是使用它

$("input#myId").bind('keyup', function (e) {    
    // Do Stuff
});
Run Code Online (Sandbox Code Playgroud)

  • 我可能在这里错了,但我认为你不能说keyup是"你想要使用的事件",因为输入与keyup不同,它会检测任何输入,就像用鼠标切割和粘贴一样.我们在这里只是firefox和IE不同意退格或删除是否应该算作"输入".我可以看到双方......我的猜测是,Eric J.真的想要一个不会等待直到元素像常规变化事件一样失去焦点的变化事件.我不知道这个问题的答案是什么. (2认同)