1

フォームが送信されると、とfalseに含まれる値が気に入らない場合、php が返されます。それらのフィールドが気に入った場合は、 を返します。ユーザーがフォームを送信し、php が を返すと、アラートが表示されます。警告ウィンドウを閉じた後、ユーザーがすぐにこれらのフィールドに新しい (適切な) データを入力してフォームを再度送信すると、フォームが何らかの理由で 2 回送信されます。なんで?どうすればこれを修正できますか?field1field2truefalse

$("form#myForm").on('submit',function() 
{
    $.ajax(
    {
        type: "POST",
        url: 'myfile.php',
        dataType: 'html',
        data: 
        {
            field1:$("input[name=field1]").val(),
            field2:$("input[name=field2]").val()
        },
        success: function(data)
        {
            if(data == false) 
            {
                alert('hello world');
            } 
            else 
            {
                // stuff
            }
        }
    });
    return false;
});
4

3 に答える 3

4

2014 年にも同じ質問がありました ( jquery ajax フォームが 2 回送信されます)。

e.preventDefault()ボタンとアンカーリンクに対しては単独で機能しますが、フォームを送信するときに機能しませんでした(上記のナンシーのコードと同じです)。

e.stopImmediatePropagation();ajax投稿の直前に追加する必要がありました。これにより、ajax 呼び出しが 2 回送信されなくなりました。

于 2015-06-01T17:52:22.283 に答える
2

このコードを下の後、前に追加しますreturn false

$('#myForm').unbind('submit');
 return false;
于 2013-11-29T13:24:36.353 に答える
1

ajax投稿を行っているため、デフォルトの送信ボタンの動作を無効にする必要があります。http://api.jquery.com/event.preventDefault/を参照してください

于 2013-02-09T02:24:40.327 に答える