Odeslání formuláře klávesou Enter
Dnes jsem narazil na zajímavou věc. Alespoň pro mne je zajímavá. Týká se odesílání formuláře po stisknutí klávesy ENTER, a to konkretně v IE.
skript:
<?
print_r($_POST);
?>
<form action="" method="post">
<input type="text" name="vstup" />
<input type="submit" name="submit" value="OK" />
</form>
Problém nastává v okamžiku, když v IE napíšete nějaký text do políčka vstup a chcete odeslat formulář ENTERem. Odešle se jen a pouze políčko vstup, hodnota prvku submit se nepředá. Pokud kliknete myší na odesílací tlačítko, tak se odešle vše.
Toto chování mi způsobilo jisté potíže, protože jsem odeslání formuláře v PHP kontroloval právě oproti hodnotě proměnné submit, která se v IE neodeslal a tudíž se neprovedla část skriptu, která se provést měla.
Ve Firefoxu se odesílají vždy obě hodnoty. Pokud někdo víte, proč se IE takto chová, napište mi vysvětlení do komentářů.
DOPLNĚNO: Řešením je přidat do formuláře jedno políčko navíc. Protože ho ale nepotřebujeme, tak bude neviditelné. Na názvu a hodnotě nezáleží.
<form action="" method="post">
<input type="text" name="vstup" />
<input type="hidden" name="kvuliHloupemuIE" value="1" />
<input type="submit" name="submit" value="OK" />
</form>
OPRAVENO: Na základě komentáře od anonymního dobráka opravuji skrip, který tedy vypadá následovně:
<form action="" method="post">
<input type="text" name="vstup" />
<input type="text" style="display:none;" name="kvuliHloupemuIE" value="1" />
<input type="submit" name="submit" value="OK" />
</form>

Počet komentářů: 3:
Myslim, ze toto nefunguje. Pridani dalsiho inputu pomaha pouze v pripade, je-li to input type text. input type="text" style="display:none;" name="hidden" value=""
Skvely clanek, vyresil jsem rychle problem :-) Vubec jsem nechapal, proc mi to neslo na www.videotube.sk/chat. Jeste jednou diky ;-)
Díky.
Přidat komentář
<< Domovská stránka