Autor | Zpráva | ||
---|---|---|---|
pavelrejha Profil |
Zdravím,
můžete mi prosím někdo poradit, co mám napsat do "kontrolaDat", aby se formulář odeslal, pouze když bude checkbox zaškrtnutý??? Předem děkuji za polopatickou pomoc :-( <script> function kontrolaDat(vstup){ zadanaHodnota = vstup.email.value; if( zadanaHodnota.indexOf("@") == -1) {alert("Ve Vašem e-mailu chybí zavináč!"); return false;} zadanaHodnota = vstup.email.value; if( zadanaHodnota.indexOf(".") == -1) {alert("Ve Vašem e-mailu chybí tečka!"); return false;} zadanaHodnota = vstup.pole.value; if( zadanaHodnota.indexOf("0") == -1) {alert("Dotaz nelze odeslat bez odsouhlasení OP!"); return false;} else return true; } </script> <form action="data.php" method="post" onsubmit="return kontrolaDat(this)"> <p>Váš e-mail:<br> <input name="email"></p> <p>Vaše jméno:<br> <input name="predmet"></p> <p>Dotaz:<br> <textarea name="zprava" rows="8">text</textarea></p> <a href="#">OP</a> <input type="checkbox" name="pole" value="???????????"> <p><input type="submit" value="Odeslat"></p> </form> |
||
Kajman Profil |
#2 · Zasláno: 18. 5. 2018, 07:15:38
if( !vstup['pole'].checked) {alert("Dotaz nelze odeslat bez odsouhlasení OP!"); return false;} |
||
Anonymni Profil * |
#3 · Zasláno: 18. 5. 2018, 16:41:58
V html5 lze do formulářových prvků vložit atribut required. Podpora toho je docela dobrá caniuse.com/#search=required. Nebo je to v něčem lepší psát pomocí javascriptu?
|
||
Keeehi Profil |
#4 · Zasláno: 18. 5. 2018, 17:11:23
Anonymni:
Z hlediska funkčních požadavků není nutné dělat kontrolu přímo v prohlížeči. Kontrola vyplněnosti musí vždy proběhnout na serveru. Kontrola v prohlížeči je kvůli UX. Těžko říci co je lepší. V různých kontextech je to různé. Atribut required je jednoduchá možnost jak takové kontroly dosáhnout. Vzhled a chování je pak závislé na prohlížeči, což v některých případech je dobře, uživatelé jsou na to zvyklí ale v některých případech to může být na obtíž. V takovém případě se dá použít javascript. Obě možnosti je samozřejmě možné taky kombinovat. |
||
Časová prodleva: 6 let
|
0