0

現在、送信ボタンのクリック イベントにバインドしています (フォームの送信イベントにバインドしていないのには理由があります)。フォームが送信される前に JS が実行されることが保証されていますか (送信したい非表示フィールドに値を入力しているため)、またはフォームが送信されないようにしてから送信を再度呼び出す必要がありますか?

$(function() {
    $('#button').on('click', function() {
        // Do some stuff here - needs to finish before the form submits

        return true;
    });
});

前もって感謝します!

4

2 に答える 2

0

私の経験では、クリックイベントのコードは常に最初に実行されます。

10,000回ループするループを使用して、最新のクロムで簡単なテストを実行しました。ループが終了するまでフォームは送信されませんでした (約 5 秒)。

ajax 呼び出しを実行しようとしたり、クリック関数で setTimeout を実行しようとすると、コールバック/ajax が終了する前にフォームが送信される可能性が高くなります。

于 2013-08-18T21:33:34.343 に答える
0

submit イベントが送信される前に機能しますが、イベントをリッスンしているだけですclick。ユーザーがenterをクリックすると、コードを実行せずにフォームが送信されます。イベントは続けたほうがいいと思いますsubmit。コールバック関数は引数として受け取ります(そして、またはeventのようなことができますe.preventDefault();e.stopPropagation();

$("form").on("submit",function(event){});
于 2013-08-18T21:41:16.937 に答える