submit hodisasi forma yuborilganda ishga tushadi, u odatda formani serverga yuborishdan oldin tekshirish yoki yuborishni bekor qilish va JavaScript da qayta ishlash uchun ishlatiladi.
form.submit() metodi JavaScript dan forma yuborishni boshlash imkonini beradi. Biz uni oâzimizning formalarimizni dinamik yaratish va serverga yuborish uchun ishlatishimiz mumkin.
Ularning batafsil maâlumotlarini koâraylik.
Hodisa: submit
Formani yuborishning ikkita asosiy usuli mavjud:
- Birinchisi â
<input type="submit">yoki<input type="image">ga bosish. - Ikkinchisi â input maydonida Enter tugmasini bosish.
Ikkala harakat ham formada submit hodisasiga olib keladi. Ishlov beruvchi maâlumotlarni tekshirishi mumkin va agar xatolar boâlsa, ularni koârsatishi va event.preventDefault() ni chaqirishi mumkin, shunda forma serverga yuborilmaydi.
Quyidagi formada:
- Matn maydoniga boring va Enter ni bosing.
<input type="submit">ga bosing.
Ikkala harakat ham alert ni koârsatadi va return false tufayli forma hech qayerga yuborilmaydi:
<form onsubmit="alert('submit!');return false">
Birinchi: Input maydoniga kiriting <input type="text" value="matn"><br>
Ikkinchi: "Submit" ga bosing: <input type="submit" value="Yuborish">
</form>
submit va click orasidagi bogâlanishInput maydonida Enter yordamida forma yuborilganda, <input type="submit"> da click hodisasi ishga tushadi.
Bu juda qiziq, chunki hech qanday bosish boâlmagan.
Mana demo:
<form onsubmit="return false">
<input type="text" size="30" value="Bu yerga fokus qiling va enter bosing">
<input type="submit" value="Yuborish" onclick="alert('bosish')">
</form>
Metod: submit
Formani serverga qoâlda yuborish uchun form.submit() ni chaqirishimiz mumkin.
Keyin submit hodisasi hosil boâlmaydi. Agar dasturchi form.submit() ni chaqirsa, skript allaqachon barcha tegishli qayta ishlashlarni amalga oshirgan deb hisoblanadi.
Baâzan bu formani qoâlda yaratish va yuborish uchun ishlatiladi:
let form = document.createElement('form');
form.action = 'https://google.com/search';
form.method = 'GET';
form.innerHTML = '<input name="q" value="test">';
// formani yuborish uchun u hujjatda bo'lishi kerak
document.body.append(form);
form.submit();
Izohlar
<code>yorlig'ini ishlating, bir nechta satrlar uchun - ularni<pre>yorlig'i bilan o'rab qo'ying, 10 satrdan ortiq bo'lsa - sandbox (plnkr, jsbin, codepenâ¦)