我想在每次特定输入框的值改变时执行一个函数。它几乎适用于$('input').keyup(function),但当将文本粘贴到框中时不会发生任何事情,例如。$input.change(函数)只在输入模糊时触发,所以我如何立即知道文本框改变了值?
当前回答
您还可以使用文本框事件-
<input id="txt1" type="text" onchange="SetDefault($(this).val());" onkeyup="this.onchange();" onpaste="this.onchange();" oninput="this.onchange();">
function SetDefault(Text){
alert(Text);
}
试试这个
其他回答
描述
你可以使用jQuery的.bind()方法来做到这一点。查看jsFiddle。
样本
Html
<input id="myTextBox" type="text"/>
jQuery
$("#myTextBox").bind("change paste keyup", function() {
alert($(this).val());
});
更多的信息
jsFiddle示范 jQuery.bind ()
试试这个:
基本上,只考虑每个事件:
Html:
<input id = "textbox" type = "text">
Jquery:
$("#textbox").keyup(function() {
alert($(this).val());
});
$("#textbox").change(function() {
alert($(this).val());
});
$("#myTextBox").on("change paste keyup select", function() {
alert($(this).val());
});
选择浏览器建议
不要忘记切割或选择事件!
公认的答案几乎是完美的,但它忘记了剪切和选择事件。
当用户剪切文本时触发cut (CTRL + X或通过右键单击)
当用户选择浏览器建议的选项时触发Select
你也应该添加它们,比如:
$("#myTextBox").on("change paste keyup cut select", function() {
//Do your function
});
更新- 2021年
从2021年起,你可以使用输入事件来处理所有事件的输入值变化。
$("#myTextBox").on("input", function() {
alert($(this).val());
});
原来的答案
只需要记住,'on'建议使用'bind'函数,所以总是尝试使用这样的事件监听器:
$("#myTextBox").on("change paste keyup", function() {
alert($(this).val());
});