Saya memiliki formulir seperti di bawah ini:

<form action="/action_page.php" onsubmit="alert('The form was submitted');" >
  Enter name: <input type="text" name="fname">
  <input type="button" onclick="document.getElementsByTagName('form')[0].submit()" value="Submit">
</form>

Meskipun saya mengklik tombol dan memang mengirimkan formulir, tetapi kotak alert tidak ditampilkan. Yaitu, metode submit() mengirimkan formulir tetapi tanpa memicu peristiwa onsubmit. Apa yang terjadi? Dan bagaimana saya harus menggunakan metode submit() untuk memicu peristiwa onsubmit?

3
blue cat 13 Agustus 2017, 21:46

2 jawaban

Jawaban Terbaik

Nah, dokumentasi untuk metode pengiriman cukup jelas bahwa itu tidak memicu pengiriman.

Karena salah satu elemen formulir berikut menyebabkan pengiriman formulir:

<input type='submit'>
<input type='button'>
<button>

Anda mungkin tidak memerlukan penangan onclick pada tombol itu sama sekali

3
James 13 Agustus 2017, 18:52

Sepertinya tidak bisa, silahkan cek postingan ini - https://stackoverflow.com/a/19847255/8449863

Namun, silakan coba solusi dengan tombol kirim tersembunyi:

<form action="/action_page.php" onsubmit="alert('The form was submitted');" >
  Enter name: <input type="text" name="fname">
  <input type="button" value="Submit" onclick="document.getElementById('submit').click();" >
  <input id="submit" type="submit" style="display: none;" />
</form>
0
Sergei Minyukevich 13 Agustus 2017, 19:00