| 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: 11 let
|
|||
0