Autor | Zpráva | ||
---|---|---|---|
prejezd Profil |
Zdravím.
Splácal jsem dohromady nějakou kontrolu formulářů, aby mi tam vyskakovali okénka o tom co vyplňuji špatně. Je to asi v této podobě. overeni.php function kprazdny($pole) { if(!$pole) return "<span class='red'>Toto pole musíte vyplnit! </span>"; if($pole) return "<span class='green'>Pole je vyplněné správně.</span>"; } echo kprazdny($_REQUEST['pole']); formular.php function kprazdny(pole, ksloupec) { http.abort(); http.open("GET", "overeni.php?pole=" + pole, true); http.onreadystatechange=function() { if(http.readyState == 4) { document.getElementById(ksloupec).innerHTML = http.responseText; } } http.send(null); } <form action="neco.php"> <input type='text' name='pole' onkeyup="kprazdny(this.value, 'neco')" /> <div id='neco'></div> <input type='submit' value='Uložit'> </form> Tak tahle to asi nějak je. A můj problém spočívá v tom, že mi tam sice vyskakuje hláška o tom jestli je pole vyplněné nebo není, ale když kliknu na uložit, tak tak se mi to odešle ať je to vyplněné nebo ne. Napadá někoho jak zajistit, aby to nešlo odeslat, když to pole nevyplním, ale aby to nějak vycházelo už z té mojí kontroly. Předpokládám, že nezůstanu jen u jednoho pole, ale ve formuláři jich bude třeba 10 a všechny budou muset být řádně vyplněny. Děkuji za každý návrh. |
||
perun Profil |
#2 · Zasláno: 11. 3. 2008, 14:36:35
Naviazať kontrolu na udalosť odoslania formulára:
<form action="..." method="..." onsubmit='return kontrolaVyplneniaPoli(this.form);' > Ak funkcia kontrolaVyplneniaPoli() vrati true, formular sa odosle. Ak vrati false, tak nie. |
||
prejezd Profil |
#3 · Zasláno: 11. 3. 2008, 17:36:11
Já nechci kontrolovat jen jestli to pole něco obsahuje, ale třeba i jestli je to číslo, email atd. POtřebuju aby to zkotrolova všechny podmínky.
|
||
perun Profil |
#4 · Zasláno: 12. 3. 2008, 11:19:51
No tak si na udalosť onsubmit skontroluj aj to, či sú hodnoty platné. Ak nechceš formulár odosielať, tak onsubmit je (afaik) jediné miesto, kde tomu zabrániť.
|
||
Časová prodleva: 16 let
|
0