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


当前回答

不要忘记切割或选择事件!

公认的答案几乎是完美的,但它忘记了剪切和选择事件。

当用户剪切文本时触发cut (CTRL + X或通过右键单击)

当用户选择浏览器建议的选项时触发Select

你也应该添加它们,比如:

$("#myTextBox").on("change paste keyup cut select", function() {
   //Do your function 
});

其他回答

用这个: https://github.com/gilamran/JQuery-Plugin-AnyChange

它处理所有改变输入的方法,包括内容菜单(使用鼠标)

不要忘记切割或选择事件!

公认的答案几乎是完美的,但它忘记了剪切和选择事件。

当用户剪切文本时触发cut (CTRL + X或通过右键单击)

当用户选择浏览器建议的选项时触发Select

你也应该添加它们,比如:

$("#myTextBox").on("change paste keyup cut select", function() {
   //Do your function 
});

试试这个:

$("input").bind({
            paste : function(){
                $('#eventresult').text('paste behaviour detected!');
            }
})
$("#myTextBox").on("change paste keyup select", function() {
     alert($(this).val());
});

选择浏览器建议

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

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

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

试试这个