ホームページ >ウェブフロントエンド >jsチュートリアル >フォーム要素を無効にせずに jQuery で二重フォーム送信を防ぐ方法は?

フォーム要素を無効にせずに jQuery で二重フォーム送信を防ぐ方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-08 16:51:02723ブラウズ

How to Prevent Double Form Submissions in jQuery Without Disabling Form Elements?

jQuery を使用してフォームでの二重送信を防止する

ユーザーは、特に処理に時間がかかる場合に、誤ってフォームを再送信することがよくあります。これを防ぐために、jQuery を使用して、最初の試行後のフォーム送信を無効にすることができます。ただし、場合によっては、入力を含むすべてのフォーム要素を無効にすると、送信自体が意図せずに妨げられる可能性があります。

jQuery プラグインを使用した改善されたソリューション

別のアプローチは、次の方法です。二重送信防止を処理するための jQuery プラグイン。このプラグインは、jQuery の data() メソッドを利用して、フォームが送信済みかどうかをマークします。

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 フォームなど) を複数回送信できるようにする必要がある場合は、次の例に示すように、CSS クラスを使用して除外できます。

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

この方法では、フォームを問題なく送信できると同時に、誤った再送信が効果的に防止され、ユーザー エクスペリエンスが向上し、潜在的なデータの漏えいが防止されます。損失。

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

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