Autor | Zpráva | ||
---|---|---|---|
jpru Profil |
#1 · Zasláno: 11. 10. 2014, 13:46:55
Už jsem trochu v koncích a chtěl bych Vás požádat o radu. Mám vytvořený jednoduchý formulář a chci využít atribut required pro ověření zda je vyplněné pole. Bohužel mi to vůbec neověřuje a formulář lze odeslat prázdný.
<form action="formular.php" method="post"> <input name="name" type="text" onfocus="if (this.value == this.defaultValue) this.value = ''" onblur="if (this.value == '') this.value = this.defaultValue" value="* Jméno" required > <p> <input name="email" type="email" onfocus="if (this.value == this.defaultValue) this.value = ''" onblur="if (this.value == '') this.value = this.defaultValue" value="* E-mail" required > <p> <input name="tel" type="tel" onfocus="if (this.value == this.defaultValue) this.value = ''" onblur="if (this.value == '') this.value = this.defaultValue" value=" Telefon" > <p> <textarea name="comments" onfocus="if(this.value == '* Vaše zpráva') { this.value = ''; }" onblur="if (this.value == '') { this.value='* Vaše zpráva'; }">* Vaše zpráva</textarea required > <p> <input name="submit" class="submit" value="ODESLAT" type="submit"> </form> Díky za rady. |
||
xROAL Profil |
#2 · Zasláno: 11. 10. 2014, 14:20:06
V kóde nevidím problém, okrem:
<textarea name="comments" onfocus="if(this.value == '* Vaše zpráva') { this.value = ''; }" onblur="if (this.value == '') { this.value='* Vaše zpráva'; }">* Vaše zpráva</textarea required > <textarea name="comments" onfocus="if(this.value == '* Vaše zpráva') { this.value = ''; }" onblur="if (this.value == '') { this.value='* Vaše zpráva'; }" required>* Vaše zpráva</textarea> Každopádne, na overenie na strane klienta (prehliadača) sa nemôžeš spoliehať. Na načítanej stránke sa dá required v pohode vymazať, niektoré prehliadače ho ani nepoznajú a budú ho ignorovať, čím sa každé pole bude dať poslať aj nevyplnené. Kontrola (vstupu od užívateľa) musí vždy prebiehať na strane serveru.
Ešte taká poznámočka: sám inputom nastavuješ value="niečo" , čím je podmienka required už splnená.
|
||
Chamurappi Profil |
#3 · Zasláno: 13. 10. 2014, 17:38:45
Reaguji na jpru:
Možná svoji stránku zkoušíš v prohlížeči, který required nezná.
Lepší je kontrolovat vstupy i JavaScriptem ( onsubmit na elementu <form> ).
Dvě poznámky trochu mimo téma: 1) Na <textarea> můžeš také používat defaultValue .
2) Můžu se zeptat, proč nepoužíváš normálně <label> ? Co z toho uživatel má, když před odesláním na vyplněném formuláři nevidí, co do které kolonky patří? Vyplňování podobných formulářů je velmi nepříjemné, je tvým cílem odradit uživatele od vyplnění?
|
||
Časová prodleva: 5 dní
|
|||
jpru Profil |
#4 · Zasláno: 18. 10. 2014, 22:09:31
Díky za reakci a rád ti odpovím. Já vůbec nevím proč jsem to tak udělal. Prostě se mi zapne stav bezmozek a píšu. Už pracuji na opravě.
Ještě jednou díky J. |
||
Joker Profil |
#5 · Zasláno: 18. 10. 2014, 23:24:44
Chamurappi:
„Lepší je kontrolovat vstupy i JavaScriptem“ Ještě doplním, že i pak je nutné ty kontroly udělat ještě jednou při zpracování na serveru (neboli zpracování na serveru by s daty mělo zacházet jako kdyby kontroly na klientovi vůbec neproběhly). |
||
Časová prodleva: 10 let
|
0