IE6中输入框上的jquery change() - 无法移除焦点

时间:2010-02-10 17:50:42

标签: jquery internet-explorer focus onchange

我有一个结帐页面,可以不显眼地检查客户是否已经从我们这里订购过。

在他们填写电子邮件地址并将注意力集中到下一个方框后,我会查看电子邮件并提供一个“欢迎回来”类型的东西,可以选择记住他们的详细信息。

我在IE6中遇到问题 - 只要输入框中的焦点丢失,ajax函数就会正常运行,但焦点会返回到输入框。这意味着每当客户试图点击电子邮件输入框时,他们就会一直返回到它并且无法继续。

有没有办法阻止这种行为?

  // check when the e-mail box is changed
  $("#email").change(function(event) {
    $.ajax({
        type: "POST",
        url: "procBasketEmailLookup.php", 
        data: $("#checkoutform").serialize(),
        success: function(response) {
            $('#emailstuffOutput').hide();
            $('#emailstuffOutput').html(response);
            $('#emailstuffOutput').show('slow');
        }
        });
        // DON'T ALLOW THE PAGE TO SUBMIT
    return false;
    });

1 个答案:

答案 0 :(得分:3)

尝试:

jQuery("#emailInputField").blur();

将它放在AJAX调用的成功处理程序中,甚至放在change()处理程序中。我无法从你的问题中看出是否是导致问题的AJAX调用,或者它是change()处理程序。但是这个应该工作。

修改

关于Pointy的评论。使用blur()会使标签序列混乱。另外,Pointy和Mattias指出你从你的处理程序返回false。由于您不在submit()处理程序中,因此无需执行此操作。 return false;也可能是您遇到问题的原因。