Avatar billede mekaniker Nybegynder
12. august 2002 - 14:14 Der er 3 kommentarer og
1 løsning

Validering af form

Som det kan ses af min kode bruger jeg to forskellige javascripts til at validere 2 forskellige inputfelter.
De virker godt nok, hver for sig.
Men når jeg lægger dem på begge to som her i koden, virker kun den som validere navnet.

er der nogle der kan hjælpe mig med at skive dette sammen so de begge virker.

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript">
<!-- Dette script og mange flere -->
<!-- findes hos http://www.html.dk -->
<!-- Start

function validering()
  {
  error = 0;

  placering=0;
  tekst=(document.forms[0].email.value).toLowerCase();
  placering=tekst.indexOf("@");
  if(tekst ==""){
    alert ("Ugyldig Email!");
    error = 1;
  }
  else{
    tegn=tekst.indexOf(" ");
    if(tegn!=-1){
      alert ("Ingen mellemrum Email'en, Tak");
      error = 1;
    }
    else{
      if (tekst.indexOf("æ")!=-1 || tekst.indexOf("ø")!=-1 || tekst.indexOf("å")!=-1 ||
        tekst.indexOf("Æ")!=-1 || tekst.indexOf("Ø")!=-1 || tekst.indexOf("Å")!=-1 ||
        tekst.indexOf(";")!=-1 || tekst.indexOf(",")!=-1){
        alert ("Email'en må ikke indeholde: æ ø å Æ Ø Å , ;");
        error = 1;
      }
    else{
      if (placering<1 || tekst.length<=(placering+1)){
        alert ("Ugyldig Email! - forsøg igen");
        error = 1;
      }
    }
  }
}
if(error == 0)
document.forms[0].submit();   
}

// Slut -->
</script>

<script type="text/javascript">

function validering()
  {
  error = 0;
  if((document.forms[0].navn.value=='') && (error==0)) 
  {       
    alert('Intast navn !');
    document.forms[0].navn.focus();
    error = 1;       
  }           

  if(error == 0)
  document.forms[0].submit();   
  }

// Slut -->
</script>
</head>
<body>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<form action="" method="post" onsubmit="validering();return false;">
<table width="708" height="248" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#666666" background="BERLIN_post.jpg">
  <tr>
    <td valign="bottom">
<table width="700" height="0" border="0" align="left" cellpadding="0" cellspacing="0">
        <tr>
          <td width="5">&nbsp; </td>
          <td width="535">Navn<br> <input type="text" name="navn" class="inputbox_text"></td>
        </tr>
        <tr>
          <td width="5">&nbsp;</td>
          <td colspan="2">Email<br> <input type="text" name="email" class="inputbox_text"></td>
        </tr>
        <tr>
          <td width="5">&nbsp; </td>
          <td>Telefon nr (SMS)<br> <input type="text" name="tlf" class="inputbox_text"s></td>
        </tr>
        <tr>
          <td width="5">&nbsp; </td>
            <td height="25" valign="bottom">
              <input type="submit" value="Submit" class="button">
            </td>
        </tr>
        <tr>
          <td colspan="2" height="5"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
</form>

//Mekaniker
</body>
</html>
Avatar billede jakoba Nybegynder
12. august 2002 - 14:23 #1
når du definerer en nummer 2 funktion med samme navn overskriver du den gamle definition.  kald evt funktionen  validering2 anden gang du definerer den.

men de 2 funktioner prøver begge to at afsende formen hvis deres egen test gik godt, og det duer ikke formularen skal jo kun afsenden hvis både den ene OG den anden består sin test.

så istedetfor
    if(error == 0)
        document.forms[0].submit();
vil jeg anbefale at du skriver linien:
    return (error==0);    // returner true hvis test gik godt.
forneden o begge funktioner

og så laver din onsubmit handler i <form kommandoen om til:
    onsubmit="return valider() && valider2();"

når onsubmit handleren returnerer true bliver formen sendt, ellers ikke.

mvh JakobA
Avatar billede jakoba Nybegynder
12. august 2002 - 14:25 #2
Ups. jeg glemte dit funktionsnavn :(
    onsubmit="return validering() && validering2();"
Avatar billede mekaniker Nybegynder
12. august 2002 - 16:01 #3
Tak for hjælpen, det virker helt perfekt nu.

Jeg har ikke beskeftiget mig så meget med javascript
Avatar billede jakoba Nybegynder
12. august 2002 - 16:03 #4
Det er ikke det store spring fra php, de fleste sætningstyper osv er de samme.
tak for pts.
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