我正在寻找一种在文本框文本发生更改时绑定到事件的方法。现在,我有这样的事情:
$("#inputPane").change(function() { alert("Changed!"); });
但是,只有在文本框失去焦点时才会调用它。每当添加、删除或剪切/粘贴新字符时,我都想获得一个事件。
我不想为此使用任何第三方插件。使用纯 jquery 会更好。
我正在寻找一种在文本框文本发生更改时绑定到事件的方法。现在,我有这样的事情:
$("#inputPane").change(function() { alert("Changed!"); });
但是,只有在文本框失去焦点时才会调用它。每当添加、删除或剪切/粘贴新字符时,我都想获得一个事件。
我不想为此使用任何第三方插件。使用纯 jquery 会更好。
最好的选择是使用keyup
事件。
$("#inputPane").keyup(function() {
alert("Changed!");
});
但是,您应该考虑到它会在单击任何键时触发,甚至Ctrl, Alt,Shift等。
您可能需要几个事件来涵盖键入的字符、粘贴等。
$("#inputPane").on('keyup paste click whatever', function() {
alert("Changed!");
});
如果由于某种原因它多次触发:
var fire = true;
$("#inputPane").on('keyup paste click whatever', function() {
if (fire) {
fire=false;
alert("Changed!");
}
setTimeout(function() {fire=true}, 200);
});
这是一个如何捕捉任何变化的例子
$('#Textbox1, #Textbox2').each(function () {
$(this).bind("propertychange keyup input paste", function (event) {
alert("changed");
});
});
我在一组文本框上使用它,它只触发一次