1

我有一个结帐页面,它不显眼地检查客户之前是否向我们订购过。

在他们填写了他们的电子邮件地址并专注于下一个框后,我查找电子邮件并显示“欢迎回来”类型的内容,并选择记住他们的详细信息。

我在 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;
    });
4

1 回答 1

3

尝试:

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

把它放在你的 AJAX 调用的成功处理程序中,甚至放在你的change()处理程序中。我无法从您的问题中判断是导致问题的 AJAX 调用,还是change()处理程序。但这应该有效。

编辑

关于Pointy的评论。使用blur()会打乱制表符顺序。此外,Pointy 和 Mattias 指出您正在false从您的处理程序返回。submit()由于您不在处理程序中,因此您无需这样做。这return false;也可能是您的问题的原因。

于 2010-02-10T17:53:30.450 回答