簡體   English   中英

輸入更改事件在模糊時觸發

[英]input change event triggered on blur

當我更改文本輸入的值然后模糊該輸入時,它會再次觸發input change事件。 如何將此模糊注冊為輸入更改? 有沒有辦法防止這種情況?

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

 $(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" /> 

只需從代碼中刪除change事件即可。 change事件是在onblur上觸發的,但僅限於自上次模糊后更改了某些內容。

采用:

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

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
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM