Autor | Zpráva | ||
---|---|---|---|
Ben Profil * |
#1 · Zasláno: 9. 5. 2011, 20:27:10
Ahoj,
potřebuju poradit proč mi nefunguje tlačítko na odeslání formuláře v IE9, když na něj kliknu myší(když odenteruji, tak se formulář odešle) <script language="javascript"> <!-- function checkForm() { if(document.vlozit.lang.value == ""){ alert("Vyplň pole jazyk!"); document.vlozit.lang.focus(); return false; } } // --> </script> <p>* - Povinné údaje</p> <form name="vlozit" action="<?php $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data" onSubmit="return checkForm();"> <table> <tr> <td colspan="2"> <select name="lang"> <option value="">Vyber jazyk...*</option> <option value="cs" <?php if(!isset($send)){echo $lang==cs ? "selected" : "";}?>>CS</option> <option value="en" <?php if(!isset($send)){echo $lang==en ? "selected" : "";}?>>EN</option> <option value="pl" <?php if(!isset($send)){echo $lang==pl ? "selected" : "";}?>>PL</option> </select> </td> </tr> ... <tr> <td><input type="submit" name="ok" value="Uložit"></td> </tr> </table> </form> |
||
Louka Profil |
#2 · Zasláno: 10. 5. 2011, 13:21:58 · Upravil/a: Louka
Protože funkce checkForm() vrací stále hodnotu false, kterou předává formuláři. A jelikož ten má tím pádem v onsubmit="return false;", tak se neodešle.
EDIT: Jsem blbej, nevšiml jsem si IF, omlouvám se a jdu se stydět :). |
||
candiess Profil |
#3 · Zasláno: 10. 5. 2011, 21:55:49 · Upravil/a: candiess
Louka:
svým způsobem máš pravdu, jen to neví co to vrátit.. ja bych tam dal function checkForm() { if(document.vlozit.lang.value == ""){ alert("Vyplň pole jazyk!"); document.vlozit.lang.focus(); return false; } else { return true; } } Ben: a co takhle <script type="text/javascript"> ..??? |
||
Louka Profil |
#4 · Zasláno: 10. 5. 2011, 22:18:04
candiess:
Musel jsem běžet, tak sem to nekoumal. Ano, když podmínka neprojde, tak funkce nevrátí true, takže se to neodešle, tvoje řešení je asi OK. |
||
_es Profil |
#5 · Zasláno: 10. 5. 2011, 22:38:09 · Upravil/a: _es
Ben:
„proč mi nefunguje tlačítko na odeslání formuláře v IE9“ V iných prehliadačoch to ide? Ak funkcia nevráti nič, tak je to to isté, ako keby vrátila undefined .
No pri vrátení hocijakej inej hodnoty ako false by k odoslaniu malo dôjsť.
Chyba bude asi inde, najskôr v hodnote vlastnosti value toho <select> u.
Použi namiesto toho vlastnosť value vybraného elementu <option> .
|
||
Ben Profil * |
#6 · Zasláno: 11. 5. 2011, 15:50:19
Oki, děkuju za radu. nefungovalo to jen v IE9, nechápu proč. Vče funguje jak má, po úpravách od candiess. Díky moc :)
|
||
_es Profil |
#7 · Zasláno: 11. 5. 2011, 22:07:57 · Upravil/a: _es
Ben:
„nefungovalo to jen v IE9, nechápu proč. Vče funguje jak má, po úpravách od candiess.“ Otestoval si, aj po úpravách, či to funguje v IE6, IE7, IE8, aj v iných rozšírenejších prehliadačoch? Lepšie by bolo pristupovať k vybranej položke <select> u cez vlastnosti options , selectedIndex a vlastnosti value až elementu option .
|
||
Časová prodleva: 13 let
|
0