我正在寻找一种在文本框文本发生变化时绑定到事件的方法。现在,我有这样的事情:
$("#inputPane").change(function() { alert("Changed!"); });
但是,只有在文本框失去焦点时才会调用此方法。每当添加,删除或剪切/粘贴都出现新角色时,我想获得一个事件。
我不想为此使用任何第三方插件。使用纯jquery会更好。
答案 0 :(得分:3)
最佳选择是使用keyup
事件。
$("#inputPane").keyup(function() {
alert("Changed!");
});
但是你应该考虑点击 ANY 键时会触发,甚至 Ctrl , Alt , Shift 等等。
答案 1 :(得分:3)
您可能需要多个事件来涵盖键入的字符,粘贴等。
$("#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);
});
答案 2 :(得分:2)
这是一个如何捕获任何变化的示例
$('#Textbox1, #Textbox2').each(function () {
$(this).bind("propertychange keyup input paste", function (event) {
alert("changed");
});
});
我在一组文本框中使用它,它只触发一次