[英]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.