我想在每次特定输入框的值改变时执行一个函数。它几乎适用于$('input').keyup(function),但当将文本粘贴到框中时不会发生任何事情,例如。$input.change(函数)只在输入模糊时触发,所以我如何立即知道文本框改变了值?


当前回答

$("#myTextBox").on("change paste keyup select", function() {
     alert($(this).val());
});

选择浏览器建议

其他回答

您可以使用下面的代码来检测输入、按键更改和按键。

$("#myTextBox").on("input", "keyup", "keydown", "keypress" function() {
  alert($(this).val()); 
});

这些事件的组合对我很有效:

$("#myTextBox").on("input paste", function() {
   alert($(this).val()); 
});

更新- 2021年

从2021年起,你可以使用输入事件来处理所有事件的输入值变化。

$("#myTextBox").on("input", function() {
   alert($(this).val()); 
});

原来的答案

只需要记住,'on'建议使用'bind'函数,所以总是尝试使用这样的事件监听器:

$("#myTextBox").on("change paste keyup", function() {
   alert($(this).val()); 
});

描述

你可以使用jQuery的.bind()方法来做到这一点。查看jsFiddle。

样本

Html

<input id="myTextBox" type="text"/>

jQuery

$("#myTextBox").bind("change paste keyup", function() {
   alert($(this).val()); 
});

更多的信息

jsFiddle示范 jQuery.bind ()

您还可以使用文本框事件-

<input id="txt1" type="text" onchange="SetDefault($(this).val());" onkeyup="this.onchange();" onpaste="this.onchange();" oninput="this.onchange();">

function SetDefault(Text){
  alert(Text);
}

试试这个