16. november 2005 - 09:32
Der er
8 kommentarer og 1 løsning
Formular submitter trods negativ validering
function val_billetsalg() { frm = document.billetsalg; if (frm.email.value == "") { alert("Udfyld email, tak!"); return false; } reEmail = /^[a-z0-9\-_]+(\.[a-z0-9\-_]+)*@([a-z0-9\-_]+\.)+[a-z0-9\-_]{2,4}$/i; if (frm.email.value != "" && !reEmail.test(frm.email.value)) { alert("Ugyldig e-mail!"); // frm.email.focus(); return false; } return true; } <form action="billetbestilling.php" method="post" name="billetsalg" onSubmit="return val_billetsalg();"> Burde den ikke lade være med at submitte ved ugyldig mailadresse? Den kommer med alerten, men submitter alligevel.
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
16. november 2005 - 10:09
#1
er det hele validerings scriptet? hvordan ser resten af formen ud?
16. november 2005 - 10:28
#2
Ja, det er hele scriptet. Formularen ser således ud: <form action="billetbestilling.php" method="post" name="billetsalg" onSubmit="return val_billetsalg();"> <table border="0" cellspacing="0" cellpadding="0"> <td class=normal colspan="2"><B>Forestillinger</B></td></tr> <? $hent = "select * from forestillinger where salg = 'ja'"; $koer_hent = mysql_query($hent) or die (mysql_error()); print "<tr><td><select name=\"forestilling\" class=normal>"; while($row = mysql_fetch_array($koer_hent)) { $aar = substr($row[tidspunkt],0,4); $maaned = substr($row[tidspunkt],5,2); $dag = substr($row[tidspunkt],8,2); $timen = substr($row[tidspunkt],11,2); $minut = substr($row[tidspunkt],14,2); $forestilling = $row[titel]." - ".$dag."-".$maaned."-".$aar.", kl. ".$timen.".".$minut." "; print "<option value=\"".$row[id]."\">".$forestilling."</option>"; } ?> </td><td class=normal> Antal: <INPUT TYPE="text" VALUE="0" SIZE="4" NAME="antal" class=form></td></tr> </table> <table border="0" cellspacing="0" cellpadding="0"> <tr valign="top"> <td class=normal> </td> </td> </tr> <tr valign="top"> <td class=normal>Navn:</td> <td><input type="text" name="navn" class="form"></td> </tr> <tr valign="top"> <td class=normal>Telefon: </td> <td><input type="text" name="telefon" class="form"></td> </tr> <tr valign="top"> <td class=normal>Email:</td> <td><input type="text" name="email" class="form"></td> </tr> <tr valign="top"> <td></td> <td><input type="submit" value="Bestil" name="Bestil" class="form"></td> </tr> </table> </form>
16. november 2005 - 10:37
#3
det virker fint hos mig, du have et script der fejler inden valideringen...
16. november 2005 - 10:46
#5
Hep. Virker også hos mig nu. Det må være noge cahce eller hvad pokker ved jeg. Tak for hjælpen ;-)
16. november 2005 - 10:48
#6
velbekomme :-)
16. november 2005 - 10:52
#7
Du må såmænd gerne få de 15 point, men så skal jeg bruge et svar.
16. november 2005 - 10:57
#8
jo tak da ;-)
16. november 2005 - 12:39
#9
-- to (tre !-) kommentarer: 1. Du kan ligesågodt sende formen med, når du kalder valideringen: function val_billetsalg(frm) { if (frm.email.value == "") { ... -- og <form ... onsubmit="return val_billetsalg(this);"> 2+. I din regexp bruger du en masse til at validere det, der kommer før @-tegnet, ifølge den gældende rfc for smtp-mail, må _ingen_ andre end mail-hosten kigge på det ... -- og så er det en fejl, at du tillader andre tegn end bogstaver i tld, som forøvrigt i dag kan være op til 6 tegn, så jeg ville rette til: reEmail = /^.*?@([a-z0-9\-_]+\.)+[a-z]{2,6}$/i;
Vi tilbyder markedets bedste kurser inden for webudvikling