Event submit
terpicu saat form dikirimkan, biasanya digunakan untuk memvalidasi form sebelum mengirimkannya ke server atau untuk membatalkan pengiriman dan memprosesnya dalam JavaScript.
Method form.submit()
memungkinkan untuk memulai pengiriman form dari JavaScript. Kita dapat menggunakannya untuk membuat dan mengirim form kita sendiri secara dinamis ke server.
Mari kita lihat lebih detail
Event: submit
Ada dua cara utama untuk mengirimkan form:
- Pertama ??? untuk mengklik
<input type="submit">
atau<input type="image">
. - Kedua ??? tekan Enter pada kolom input.
Kedua tindakan tersebut mengarah ke event submit
pada form. Handler dapat memeriksa data, dan jika ada kesalahan, tunjukkan dan panggil event.preventDefault()
, maka formulir tidak akan dikirim ke server.
Dalam form di bawah ini:
- Masuk ke field teks dan tekan Enter.
- Klik
<input type="submit">
.
Kedua tindakan menunjukkan alert
dan form tidak dikirim ke mana pun karena return false
:
<form onsubmit="alert('submit!');return false">
First: Enter in the input field <input type="text" value="text"><br>
Second: Click "submit": <input type="submit" value="Submit">
</form>
submit
dan click
Saat form dikirim menggunakan Enter pada field input, event click
akan dipicu pada <input type="submit">
.
Itu agak lucu, karena tidak ada klik sama sekali.
Berikut demonya:
<form onsubmit="return false">
<input type="text" size="30" value="Focus here and press enter">
<input type="submit" value="Submit" onclick="alert('click')">
</form>
Method: submit
Untuk mengirimkan form ke server secara manual, kita dapat memanggil form.submit()
.
Maka event submit
tidak dibuat. Diasumsikan bahwa jika programmer memanggil form.submit()
, maka skrip telah melakukan semua pemrosesan terkait.
Terkadang itu digunakan untuk membuat dan mengirim formulir secara manual, seperti ini:
let form = document.createElement('form');
form.action = 'https://google.com/search';
form.method = 'GET';
form.innerHTML = '<input name="q" value="test">';
// form harus berada di dalam dokumen untuk mengirimkannya.
document.body.append(form);
form.submit();