输入字段“onchange”事件jquery

时间:2014-01-04 13:03:13

标签: jquery

<input type="text" id="myinput" name="myinput" value="" />

我如何使用jquery来检测输入字段的“onchange”事件。我尝试了一切,但似乎没有任何东西可以解雇它。

$("#myinput").bind("onchange",alert("test"));
$("#myinput").change(alert("test"));

我正在使用jquery 2.03.Its“onchange”也就是说,一旦用户完成输入然后点火事件。每个字母改变后都没有火,因为我从服务器获取json,如果它在哪里调用它将导致巨大的负荷每个字母都改变了。

保罗说这是解决方案我猜...很多

http://jsfiddle.net/kerc6/5/

3 个答案:

答案 0 :(得分:3)

使用.on()方法,创建函数处理程序并在内部执行操作。

jQuery(function( $ ){ // DOM is now ready

    $("#myinput").on("input", function(){ // or use "change" if you need
      // DO SOMETHING
    });

});

另一种方式:

function inputChangeStuff(){
    // DO SOMETHING
}

jQuery(function( $ ){ // DOM is now ready    
    $("#myinput").on("input", inputChangeStuff);     
});

答案 1 :(得分:2)

如果您希望它在每个按键上触发,那么您就错了。当焦点超出元素时,它将自动触发。

仅适用于radio-buttoncheckbox等元素。

出于特定目的,定义jquery事件input,如下所示:

$("input").on('input', function(){alert(1)});

N.B。这仅适用于即时更改检测的文本输入元素。最重要的是,它会检测任何类型的更改,例如通过keyboardmouse

<强> Fiddle

答案 2 :(得分:1)

通过使用keyup,你也可以跟踪它:

  <script>
   $(document).ready(function(){
   $("#myinput").keydown(function(){
    $("#myinput").css("background-color","yellow");
   });
   $("#myinput").keyup(function(){
    $("#myinput").css("background-color","pink");
   });
 });
</script>