Avatar billede donslund Nybegynder
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.
Avatar billede mm12010 Nybegynder
16. november 2005 - 10:09 #1
er det hele validerings scriptet? hvordan ser resten af formen ud?
Avatar billede donslund Nybegynder
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."&nbsp";
        print "<option value=\"".$row[id]."\">".$forestilling."</option>";
        }
        ?>
        </td><td class=normal>&nbsp;&nbsp;&nbsp;Antal:&nbsp;<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>&nbsp;</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:&nbsp;&nbsp;</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>
Avatar billede mm12010 Nybegynder
16. november 2005 - 10:37 #3
det virker fint hos mig, du have et script der fejler inden valideringen...
Avatar billede donslund Nybegynder
16. november 2005 - 10:40 #4
Men der er ikke anden script på siden ud over noget til menuen. http://www.b-as.dk/?inc=billetsalg
Avatar billede donslund Nybegynder
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 ;-)
Avatar billede mm12010 Nybegynder
16. november 2005 - 10:48 #6
velbekomme :-)
Avatar billede donslund Nybegynder
16. november 2005 - 10:52 #7
Du må såmænd gerne få de 15 point, men så skal jeg bruge et svar.
Avatar billede mm12010 Nybegynder
16. november 2005 - 10:57 #8
jo tak da ;-)
Avatar billede roenving Novice
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;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester