jQuery での二重フォーム送信を防ぐには?

DDD
リリース: 2024-11-10 08:14:02
オリジナル
719 人が閲覧しました

How to Prevent Double Form Submission in jQuery?

jQuery でのフォームの再送信の防止

フォームの送信では、サーバー処理の遅延中にユーザーが誤って 2 回送信しないようにすることが重要です。一般的な解決策には、送信時にフォーム要素を無効にすることが含まれます。ただし、この方法では、重要なデータを含む入力など、無効にしてはいけない要素が無効になる可能性があります。

送信ボタンのみを無効にする

送信ボタンを具体的に無効にして干渉を回避するにはフォーム送信では、次のコードを使用します。

$('button[type=submit], input[type=submit]').prop('disabled',true);
ログイン後にコピー

二重送信防止用の jQuery プラグイン

もう 1 つの効果的な解決策は、データを利用する jQuery プラグインを作成することです( ) フォームを送信済みとしてマークする関数:

jQuery.fn.preventDoubleSubmission = function() {
    $(this).on('submit',function(e){
        var $form = $(this);

        if ($form.data('submitted') === true) {
            // Previously submitted - don't submit again
            e.preventDefault();
        } else {
            // Mark it so that the next submit can be ignored
            $form.data('submitted', true);
        }
    });

    // Keep chainability
    return this;
};
ログイン後にコピー

プラグインを使用するには、単にフォームに適用します:

$('form').preventDoubleSubmission();
ログイン後にコピー

Ajax フォームを除く

複数の送信を必要とする AJAX フォームがある場合は、クラスを追加し、次のセレクターを使用してそれらを除外します:

$('form:not(.js-allow-double-submission)').preventDoubleSubmission();
ログイン後にコピー

これらの手法を利用することで、フォームの二重送信を防ぎ、サーバーをスムーズに実行できます。処理中です。

以上がjQuery での二重フォーム送信を防ぐには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート