Můj přítel Tom a Robin nedávno diskutovali na našich kanálech Slack o implicitním odesílání formulářů. Implicitní odeslání formuláře je akce pouhého stisknutí klávesy ENTER při zaměření vstupního prvku. Ukazuje se, že je to možné pouze za dvou podmínek:
- formulář má tlačítko pro odeslání
- formulář má pouze jeden vstupní prvek
Dovolte mi tedy rychle sdílet Tomův příklad.
<form onsubmit="alert(1)">
<!-- this will alert if you press enter while "foo" is focused -->
<input name="foo" />
</form>
<form onsubmit="alert(2)">
<!-- this won't -->
<input name="foo" />
<input name="bar" />
</form>
Toto chování můžete obejít přidáním skrytého tlačítka pro odeslání. Ale přesto... toto chování mě překvapilo.
Nevěděl jsem o tom a je to definováno ve spec. Dobré vědět!