Bagaimana untuk Mencegah Penyerahan Borang Berganda dalam jQuery Tanpa Melumpuhkan Elemen Borang?

Patricia Arquette
Lepaskan: 2024-11-08 16:51:02
asal
673 orang telah melayarinya

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

Halang Penyerahan Berganda dalam Borang Menggunakan jQuery

Pengguna sering menyerahkan semula borang secara tidak sengaja, terutamanya apabila mereka mengambil masa yang lama untuk diproses. Untuk mengelakkan ini, jQuery boleh digunakan untuk melumpuhkan penyerahan borang selepas percubaan awal. Walau bagaimanapun, dalam beberapa kes, melumpuhkan semua elemen borang, termasuk input, mungkin secara tidak sengaja menghalang penyerahan itu sendiri.

Penyelesaian yang Diperbaiki menggunakan Pemalam jQuery

Pendekatan alternatif ialah menggunakan pemalam jQuery untuk mengendalikan pencegahan penyerahan berganda. Pemalam ini memanfaatkan kaedah data() jQuery untuk menandakan borang sebagai telah diserahkan atau tidak.

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;
};
Salin selepas log masuk

Penggunaan

Untuk menggunakan pemalam ini, masukkan sahaja dengan $(' form').preventDoubleSubmission();.

Kecualikan Borang AJAX Yang Dibenarkan

Jika borang tertentu (cth., borang AJAX) harus dibenarkan untuk diserahkan beberapa kali, mereka boleh dikecualikan menggunakan kelas CSS, seperti yang dilihat dalam contoh berikut:

$('form:not(.js-allow-double-submission)').preventDoubleSubmission();
Salin selepas log masuk

Dengan kaedah ini, borang boleh diserahkan tanpa sebarang isu, manakala penyerahan semula secara tidak sengaja dihalang dengan berkesan, meningkatkan pengalaman pengguna dan menghalang potensi kehilangan data .

Atas ialah kandungan terperinci Bagaimana untuk Mencegah Penyerahan Borang Berganda dalam jQuery Tanpa Melumpuhkan Elemen Borang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan