Bagaimana untuk mengelakkan penyerahan borang?
P粉545218185
P粉545218185 2023-08-21 13:38:16
0
2
525
<p>Saya mempunyai borang dengan butang hantar di suatu tempat di dalamnya. </p> <p>Walau bagaimanapun, saya ingin "menangkap" acara komit dan menghalangnya daripada berlaku. </p> <p>Adakah terdapat cara untuk melakukan ini? </p> <p>Saya tidak boleh mengubah suai butang serah kerana ia adalah sebahagian daripada kawalan tersuai. </p>
P粉545218185
P粉545218185

membalas semua(2)
P粉463418483

Anda boleh menggunakan acara sebaris seperti inionsubmit

<form onsubmit="alert('停止提交'); return false;">

atau

<script>
   function toSubmit(){
      alert('我不会提交');
      return false;
   }
</script>

<form onsubmit="return toSubmit();">

Contoh

Kini, apabila membangunkan projek besar, ini mungkin bukan idea yang baik. Anda mungkin perlu menggunakan pendengar acara.

Sila baca lebih lanjut tentang acara sebaris lwn pendengar acara (tambahEventListener dan attachEvent IE) di sini . Kerana saya tidak dapat menjelaskannya lebih baik daripada Chris Baker.

P粉399585024

Tidak seperti jawapan lain, mengembalikan falsehanya merupakan bahagian jawapan. Pertimbangkan kes di mana ralat JS berlaku sebelum pernyataan pulangan...

html

<form onsubmit="return mySubmitFunction(event)">
  ...
</form>

skrip

function mySubmitFunction()
{
  someBug()
  return false;
}

Kembali ke sinifalse不会被执行,表单将以任何方式提交。您还应该调用preventDefault tidak akan dilaksanakan dan borang akan diserahkan dalam apa jua cara. Anda juga harus memanggil preventDefault untuk menghalang tindakan lalai penyerahan borang Ajax.

function mySubmitFunction(e) {
  e.preventDefault();
  someBug();
  return false;
}

Dalam kes ini, borang tidak akan dihantar walaupun terdapat ralat!

Sebagai alternatif, anda boleh menggunakan try...catch blok.

function mySubmit(e) { 
  e.preventDefault(); 
  try {
   someBug();
  } catch (e) {
   throw new Error(e.message);
  }
  return false;
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan