1

ユーザーがフォームを送信しようとしたときに、AJAX リクエストを作成したいと考えています。ただし、応答を待ちたくなく (スクリプトをトリガーしたいだけです)、フォームをすぐに送信します (またはユーザーをリダイレクトします)。

私はこのようにしようとしました(jQuery経由):

$(document).ready(function()
{
    $("#form").submit(function(e)
    {
        // save object reference
        var form = this;

        // prevent form submit
        e.preventDefault();

        // trigger ajax request
        $.ajax({
            url: 'ajax.php',
            data: { ... },
            cache: false
        });

        // submit form
        form.submit();

        // return false just in case
        return false; 
    });
});

しかし、これは機能しません。なぜなら、フォームが直後に ( 経由で) 送信された場合、AJAX 要求は実際にはブラウザーによって送信されないform.submit()からです。

私はここで少し困惑しています... AJAX リクエストを起動し、その後すぐにブラウザをリダイレクトする方法は本当にありませんか?

4

1 に答える 1

0

ここで無限ループを作成しているようです。submit イベントを防止し、最後に再度送信していますが、関数をフォームの送信にバインドすると、何度も呼び出されます。代わりに、success や complete などの Ajax 状態を使用してみてください。成功するとデータを送信し、完了するとページをリダイレクトします。

于 2013-10-15T15:06:20.130 に答える