输入更改事件在模糊时触发

时间:2015-02-27 18:33:11

标签: javascript jquery html

当我更改文本输入的值然后模糊该输入时,它再次触发input change事件。如何将此模糊注册为输入更改?有没有办法防止这种情况?

$('input').on('input change',function(){
 //do something
});

3 个答案:

答案 0 :(得分:10)



$(function(){
  $('#onchange').on('change',function(){
    alert('changed')
  });
  
   $('#onEveryLetter').on('input',function(){
    alert('onEveryLetter')
  });
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
onchange: <input type="text" id="onchange" name="Jenish" />
<br/>
onEveryLetter: <input type="text" id="onEveryLetter" name="Jenish" />
&#13;
&#13;
&#13;

答案 1 :(得分:1)

只需从代码中删除change事件即可。 change事件被触发onblur,但仅限于自上次模糊以来某些事情发生了变化。

使用:

$('input').on('input',function(){
 //do something
});

答案 2 :(得分:0)

Jenish的回答是正确的。更重要的是......对于那些使用jQuery .on()这样的委托监听器的人来说,这是一个允许您捕获其他表单元素(textarea,select等)上的所有更改事件并忽略更改的示例由文本INPUT上的模糊触发的事件。

$('div').on('input change',function(e){
      // This will keep the text INPUT from triggering for change event on blur.
      if(e.type == 'change' && e.target.nodeName == 'INPUT') {
        return false;
      }
      // Text INPUTs still pick up on the input event here
});