Autor | Zpráva | ||
---|---|---|---|
mimochodec Profil |
#1 · Zasláno: 20. 2. 2015, 12:13:50
Mám form, v něm input a submit. Před odesláním chci něco ověřit v databázi a když to neprojde, chci odeslání stornovat. Takto umístěný
return false; ale nezafunguje, což docela chápu. Poradíte něco, co by fungovalo líp? Díky.
<form method='post' onclick='verify()'> function verify() { var maj=document.getElementById("majitel").value; var addr="ax.php?verifyjm="+maj; xmlhttp=GetXmlHttpObject(); if (xmlhttp==null) { alert ("Browser does not support HTTP Request"); return; } xmlhttp.onreadystatechange=verifydone; xmlhttp.open("GET",addr,true); xmlhttp.send(null); }; function verifydone() { if (xmlhttp.readyState==4) { var ret = (xmlhttp.responseText).trim(); } else { // alert ("xx"); } if (ret==0) { return false; } } |
||
Chamurappi Profil |
#2 · Zasláno: 20. 2. 2015, 12:33:02
Reaguji na mimochodce:
Chytat onclick na <form> u je divné. Spíš onsubmit . Momentálně jednak verify nic nevrací a i kdyby vracel, nic to nezmůže, protože ve zpracování události také není return .
„Před odesláním chci něco ověřit v databázi a když to neprojde, chci odeslání stornovat.“ Špatný úhel pohledu. Chceš ho stornovat vždy, protože odpověď ze serveru dorazí později. V době dokončení zpracování události onsubmit ještě nemáš šanci vědět, co si o tom server myslí.
Takže vrátíš false vždy a až po přijetí odpovědi se rozhodneš, jestli formulář odešleš znovu.
|
||
mimochodec Profil |
#3 · Zasláno: 20. 2. 2015, 12:38:07
Chamurappi:
„Chytat onclick na <form>u je divné. Spíš onsubmit.“ Ano, to byl překlep. Opraveno, díky. „Takže vrátíš false vždy“ A toho dosáhnu jak? Zkusil jsem dát return false; na konec function verify() a vypadá to, že ani tam to nezafunguje. Napadá mě, že bych místo submitu dal button a použil ten onclick, ale i tak by mě zajímalo, co na tomhle dělám špatně.
|
||
Destiny_1 Profil |
onsubmit="return verify()" |
||
mimochodec Profil |
#5 · Zasláno: 20. 2. 2015, 12:47:56
Destiny_1:
Bingo. Díky. |
||
Časová prodleva: 10 let
|
0