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()すると、タブシーケンスが台無しになります。falseまた、Pointy と Mattias は、あなたがハンドラーから戻ってきていることを指摘しました。submit()ハンドラーにいないので、それを行う必要はありません。これreturn false;も問題の原因である可能性があります。

于 2010-02-10T17:53:30.450 に答える