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
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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