Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mencegah Borang daripada Penyerahan Berganda dalam jQuery dengan Plugin?

Bagaimana untuk Mencegah Borang daripada Penyerahan Berganda dalam jQuery dengan Plugin?

Linda Hamilton
Linda Hamiltonasal
2024-11-10 20:57:03639semak imbas

How to Prevent Forms from Double Submission in jQuery with a Plugin?

Cara Mencegah Penyerahan Berganda Borang dalam jQuery dengan Pemalam

Mencegah penyerahan semula borang adalah penting apabila pemprosesan mengambil masa di bahagian pelayan. Malangnya, melumpuhkan semua input borang, seperti yang anda cuba menggunakan jQuery, boleh menghalang penyerahan borang dalam sesetengah penyemak imbas.

Kaedah Disyorkan: Pemalam jQuery

Untuk mengelakkan penyerahan dua kali dengan berkesan, kami mengesyorkan pemalam jQuery tersuai:

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

    if ($form.data('submitted') === true) {
      e.preventDefault();
    } else {
      $form.data('submitted', true);
    }
  });

  return this;
};

Penggunaan:

Laksanakan pemalam dengan memilih borang dan menggunakan preventDoubleSubmission():

$('form').preventDoubleSubmission();

Penyesuaian:

Jika borang tertentu membenarkan berbilang penyerahan setiap halaman dimuatkan, berikan mereka kelas dan kecualikan mereka daripada pemilih:

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

Pertimbangan Tambahan:

  • Seperti yang dinyatakan dalam jawapan asal, memastikan operasi adalah idempoten ialah penyelesaian yang optimum.
  • Pemalam ini bergantung pada kaedah data() jQuery, yang mungkin tidak disokong oleh pelayar lama. Pertimbangkan keserasian merentas pelayar sebelum pelaksanaan.

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

Kenyataan:
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