ÐÑи оÑпÑавке ÑоÑÐ¼Ñ ÑÑабаÑÑÐ²Ð°ÐµÑ ÑобÑÑие submit, оно обÑÑно иÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð¿ÑовеÑки (валидаÑии) ÑоÑÐ¼Ñ Ð¿ÐµÑед ÐµÑ Ð¾ÑпÑавкой на ÑеÑÐ²ÐµÑ Ð¸Ð»Ð¸ Ð´Ð»Ñ Ð¿ÑедоÑвÑаÑÐµÐ½Ð¸Ñ Ð¾ÑпÑавки и обÑабоÑки ÐµÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ JavaScript.
ÐеÑод form.submit() позволÑÐµÑ Ð¸Ð½Ð¸ÑииÑоваÑÑ Ð¾ÑпÑÐ°Ð²ÐºÑ ÑоÑÐ¼Ñ Ð¸Ð· JavaScript. ÐÑ Ð¼Ð¾Ð¶ÐµÐ¼ иÑполÑзоваÑÑ ÐµÐ³Ð¾ Ð´Ð»Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑкого ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸ оÑпÑавки наÑиÑ
ÑобÑÑвеннÑÑ
ÑоÑм на ÑеÑвеÑ.
ÐавайÑе поÑмоÑÑим на Ð½Ð¸Ñ Ð¿Ð¾Ð´Ñобнее.
СобÑÑие: submit
ÐÑÑÑ Ð´Ð²Ð° оÑновнÑÑ ÑпоÑоба оÑпÑавиÑÑ ÑоÑмÑ:
- ÐеÑвÑй â нажаÑÑ ÐºÐ½Ð¾Ð¿ÐºÑ
<input type="submit">или<input type="image">. - ÐÑоÑой â нажаÑÑ Enter, Ð½Ð°Ñ Ð¾Ð´ÑÑÑ Ð½Ð° каком-нибÑÐ´Ñ Ð¿Ð¾Ð»Ðµ.
Ðба дейÑÑÐ²Ð¸Ñ ÑгенеÑиÑÑÑÑ ÑобÑÑие submit на ÑоÑме. ÐбÑабоÑÑик Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑовеÑиÑÑ Ð´Ð°Ð½Ð½Ñе, и еÑли еÑÑÑ Ð¾Ñибки, показаÑÑ Ð¸Ñ
и вÑзваÑÑ event.preventDefault(), Ñогда ÑоÑма не бÑÐ´ÐµÑ Ð¾ÑпÑавлена на ÑеÑвеÑ.
РпÑимеÑе ниже:
- ÐеÑейдиÑе в ÑекÑÑовое поле и нажмиÑе Enter.
- ÐажмиÑе
<input type="submit">.
Ðба дейÑÑÐ²Ð¸Ñ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑ alert и ÑоÑма не оÑпÑавиÑÑÑ Ð±Ð»Ð°Ð³Ð¾Ð´Ð°ÑÑ return false:
<form onsubmit="alert('submit!');return false">
ÐеÑвÑй пÑимеÑ: нажмиÑе Enter: <input type="text" value="ТекÑÑ"><br>
ÐÑоÑой пÑимеÑ: нажмиÑе на ÐºÐ½Ð¾Ð¿ÐºÑ "ÐÑпÑавиÑÑ": <input type="submit" value="ÐÑпÑавиÑÑ">
</form>
submit и clickÐÑи оÑпÑавке ÑоÑÐ¼Ñ Ð¿Ð¾ нажаÑÐ¸Ñ Enter в ÑекÑÑовом поле, генеÑиÑÑеÑÑÑ ÑобÑÑие click на кнопке <input type="submit">.
ÐÑо доволÑно забавно, ÑÑиÑÑÐ²Ð°Ñ ÑÑо никакого клика не бÑло.
ÐÑимеÑ:
<form onsubmit="alert('submit!');return false">
<input type="text" size="30" value="УÑÑановиÑе ÑокÑÑ Ð·Ð´ÐµÑÑ Ð¸ нажмиÑе Enter">
<input type="submit" value="ÐÑпÑавиÑÑ" onclick="alert('click')">
</form>
ÐеÑод: submit
ЧÑÐ¾Ð±Ñ Ð¾ÑпÑавиÑÑ ÑоÑÐ¼Ñ Ð½Ð° ÑеÑÐ²ÐµÑ Ð²ÑÑÑнÑÑ, Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ вÑзваÑÑ Ð¼ÐµÑод form.submit().
ÐÑи ÑÑом ÑобÑÑие submit не генеÑиÑÑеÑÑÑ. ÐÑедполагаеÑÑÑ, ÑÑо еÑли пÑогÑаммиÑÑ Ð²ÑзÑÐ²Ð°ÐµÑ Ð¼ÐµÑод form.submit(), Ñо он Ñже вÑполнил вÑÑ ÑооÑвеÑÑÑвÑÑÑÑÑ Ð¾Ð±ÑабоÑкÑ.
Ðногда ÑÑо иÑполÑзÑÑÑ Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑаÑии ÑоÑÐ¼Ñ Ð¸ оÑпÑавки ÐµÑ Ð²ÑÑÑнÑÑ, напÑÐ¸Ð¼ÐµÑ Ñак:
let form = document.createElement('form');
form.action = 'https://google.com/search';
form.method = 'GET';
form.innerHTML = '<input name="q" value="test">';
// пеÑед оÑпÑавкой ÑоÑмÑ, ÐµÑ Ð½Ñжно вÑÑавиÑÑ Ð² докÑменÑ
document.body.append(form);
form.submit();
ÐомменÑаÑии
<code>, Ð´Ð»Ñ Ð½ÐµÑколÑÐºÐ¸Ñ ÑÑÑок кода — Ñег<pre>, еÑли болÑÑе 10 ÑÑÑок — ÑÑÑÐ»ÐºÑ Ð½Ð° пеÑоÑниÑÑ (plnkr, JSBin, codepenâ¦)