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

Jer*_*iko 145 jquery

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

Ale*_*lva 307

只是通过'bind'函数推荐'on',所以总是尝试使用这样的事件监听器:

$("#myTextBox").on("change paste keyup", function() {
   alert($(this).val()); 
});
Run Code Online (Sandbox Code Playgroud)

  • 如果使用 `console.log()` 而不是 `alert` 会更好。keyup 到`alert` 会很烦人。 (4认同)
  • @cytsunny是的,确实,警报很烦人,但在这种情况下是一个代码要在值更改上执行,它实际上可以是你想要的任何有效负载. (4认同)
  • @ NicolasS.Xu:直接指定值不会触发任何DOM事件 (3认同)
  • 不适用于elem.value ='abc' (2认同)
  • 刚刚注意到该功能被执行了很多次,只需要“输入”而不添加任何其他内容 (2认同)

dkn*_*ack 103

描述

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

样品

HTML

<input id="myTextBox" type="text"/>
Run Code Online (Sandbox Code Playgroud)

jQuery的

$("#myTextBox").bind("change paste keyup", function() {
   alert($(this).val()); 
});
Run Code Online (Sandbox Code Playgroud)

更多信息


小智 14

试试吧..来自/sf/users/81866361/

在这里回答我的问题: /sf/ask/1725626801/?noredirect=1#comment38213480_24651811

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

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

   // Do your thing here.
});
Run Code Online (Sandbox Code Playgroud)

注意:IE的较低版本的propertychange.


Ish*_*ain 6

你也可以使用文本框事件 -

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

function SetDefault(Text){
  alert(Text);
}
Run Code Online (Sandbox Code Playgroud)

试试这个


H B*_*amy 5

尝试这个:

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

网址:

<input id = "textbox" type = "text">
Run Code Online (Sandbox Code Playgroud)

查询:

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

$("#textbox").change(function() { 
alert($(this).val());  
}); 
Run Code Online (Sandbox Code Playgroud)