ホームページ >ウェブフロントエンド >jsチュートリアル >jQuery を使用した二重フォーム送信を防ぐにはどうすればよいですか?

jQuery を使用した二重フォーム送信を防ぐにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-08 20:01:02226ブラウズ

How Can I Prevent Double Form Submissions with jQuery?

jQuery による二重フォーム送信の防止

特定のシナリオでは、サーバーがまだフォームを処理している間にユーザーがフォームを再送信できないようにすることが不可欠になります。最初の提出。この記事では、jQuery を使用したこの問題の解決策を提供し、二重送信を効果的に防止しながらフォームの機能を維持することを約束します。

問題を引き起こす jQuery コード

最初の jQuery コードでは、すべての機能が無効になります。送信ボタンを含むフォーム要素が含まれるため、フォームは送信されません。異なる機能を持つ複数のボタンが存在する可能性があるため、送信ボタンのみを無効にすることが重要です。

改訂されたソリューション

改訂されたソリューションでは、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;
};

使用法

このソリューションを実装するには、フォーム要素でPreventDoubleSubmission 関数を呼び出すだけです:

$('form').preventDoubleSubmission();

AJAX の処理フォーム

特定のフォームでページ読み込み内で複数の送信を許可する必要がある場合は、クラスを使用してそれらを除外できます:

$('form:not(.js-allow-double-submission)').preventDoubleSubmission();

この改善されたソリューションを組み込むことで、効果的に二重送信を防ぐことができますWeb アプリケーションでのフォーム送信により、シームレスなユーザー エクスペリエンスを確保し、潜在的なデータの不整合を回避します。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。