输入按键和模糊事件后,chrome激活两次更改事件

时间:2013-04-22 04:51:00

标签: jquery google-chrome onchange blur

我有一个文字<input>,当它被提交时,我想要触发更改事件。更改事件由以下方式触发: 1.在文本字段外单击(因此它失去焦点)或 2.按enter键(使文本字段保持聚焦)

我不希望文本字段集中,所以我使用.blur() jQuery:

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

当我在Firefox中测试时一切顺利 但是当我用chrome测试时,更改事件会触发两次,我会收到两个警报。

仅在按下回车键时才会发生。

如果我删除$(this).blur();更改事件,则只触发一次。

代码为here

这可能是一个铬虫,但如果有人知道如何解决这个问题,那将是一个很大的帮助

1 个答案:

答案 0 :(得分:2)

请尝试使用此代码,而不是正确的解决方案,但会解决您遇到的问题:

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

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