我有一个文字<input>
,当它被提交时,我想要触发更改事件。更改事件由以下方式触发:
1.在文本字段外单击(因此它失去焦点)或
2.按enter键(使文本字段保持聚焦)
我不希望文本字段集中,所以我使用.blur()
jQuery:
$(document).on("change", "input.quantity", function()
{
alert('Changed!');
$(this).blur();
});
当我在Firefox中测试时一切顺利 但是当我用chrome测试时,更改事件会触发两次,我会收到两个警报。
仅在按下回车键时才会发生。
如果我删除$(this).blur();
更改事件,则只触发一次。
代码为here
这可能是一个铬虫,但如果有人知道如何解决这个问题,那将是一个很大的帮助
答案 0 :(得分:2)
请尝试使用此代码,而不是正确的解决方案,但会解决您遇到的问题:
$(document).on("change", "input.quantity", function(e)
{
alert('Changed!');
var $ele = $(this);
setTimeout(function() {$ele.blur();}, 50);
});
更新了小提琴:http://jsfiddle.net/rqFAH/1/