在jQuery中检测输入[type = text]的值变化

时间:2012-01-05 18:05:38

标签: jquery

我想在每次特定输入框的值更改时执行函数。 几乎$('input').keyup(function)一起使用,但是在将文本粘贴到框中时没有任何反应。 $input.change(function)仅在输入模糊时触发,那么只要文本框的值发生变化,我怎么能立即知道?

10 个答案:

答案 0 :(得分:285)

请记住,建议使用'one'而不是'bind'函数,所以总是尝试使用这样的事件监听器:

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

答案 1 :(得分:100)

描述

您可以使用jQuery的.bind()方法执行此操作。查看jsFiddle

示例

<强> HTML

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

<强>的jQuery

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

更多信息

答案 2 :(得分:12)

试试这个..来自https://stackoverflow.com/users/1169519/teemu

在这里回答我的问题: https://stackoverflow.com/questions/24651811/jquery-keyup-doesnt-work-with-keycode-filtering?noredirect=1#comment38213480_24651811

这个解决方案帮助我推进了我的项目。

$("#your_textbox").on("input propertychange",function(){

   // Do your thing here.
});

注意:IE的较低版本的属性更改。

答案 3 :(得分:6)

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

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

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

Try This

答案 4 :(得分:4)

试试这个:

基本上,只考虑每个事件:

HTML:

<input id = "textbox" type = "text">

Jquery的:

$("#textbox").keyup(function() { 
    alert($(this).val());  
}); 

$("#textbox").change(function() { 
alert($(this).val());  
}); 

答案 5 :(得分:2)

试试这个:

$("input").bind({
            paste : function(){
                $('#eventresult').text('paste behaviour detected!');
            }
})

答案 6 :(得分:2)

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

select for browser suggestion

答案 7 :(得分:1)

别忘了cutselect事件!

可接受的答案几乎是完美的,但是却忘记了cutselect事件。

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

cut

用户选择浏览器建议的选项时,会触发

select

您也应该添加它们,例如:

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

答案 8 :(得分:0)

使用此: https://github.com/gilamran/JQuery-Plugin-AnyChange

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

答案 9 :(得分:0)

这些事件组合对我有用:

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