2013-04-22 81 views
1

我有一個文本<input>並且在提交時我想發起更改事件。 1.單擊文本框外(因此它失去焦點)或 2.按下回車鍵(使文本字段保持聚焦)在輸入按鍵和模糊事件之後,Chrome會發生兩次事件更改事件

我不想文本字段的重點:改變事件被解僱所以我用jQuery的.blur()此:

$(document).on("change", "input.quantity", function() 
{ 
    alert('Changed!'); 
    $(this).blur(); 
}); 

當我在Firefox測試一切順利 但是當我在Chrome測試它,改變事件觸發兩次,我得到兩個警報。

只有按下回車鍵纔會發生。

如果我刪除$(this).blur();更改事件只觸發一次。

的代碼是here

這可能是Chrome錯誤,但如果任何人有一個想法如何解決這一問題,這將是一個很大的幫助

回答

2

試試這個代碼,而不是,不是一個妥善的解決辦法,但會解決這個問題,你都面臨着:

$(document).on("change", "input.quantity", function(e) 
{ 
    alert('Changed!'); 
    var $ele = $(this); 
    setTimeout(function() {$ele.blur();}, 50); 
}); 

更新小提琴:http://jsfiddle.net/rqFAH/1/

+0

非常感謝你。你的解決方案已經足夠了 – 2013-04-22 19:09:10