Avatar billede hansen Nybegynder
24. marts 2003 - 13:12 Der er 8 kommentarer og
1 løsning

Validering - enten eller

Jeg har et formset hvor der skal indtastet navn, adresse og mindst et telefonnummer -dag eller aften, men det funker ikke rigtigt det jeg har lavet, er der en der har tid til at hjælpe ?

---
<html>

<head>
<title>Ny side 1</title>
<script type="text/javascript">
<!-- Start
function valid()
  {
  error = 0;
  if((document.salgsprospekt.navn.value=='') && (error==0))
  {   
    alert('Intast navn !');
    document.salgsprospekt.navn.focus();
    error = 1;   
  }
 
  if((document.salgsprospekt.adresse.value=='') && (error==0))
  {   
    alert('Intast adresse !');
    document.salgsprospekt.adresse.focus();
    error = 1;   
  }
 
if ( (document.salgsprospekt.telefon.value=='')&&(document.salgsprospekt.telefon2.value=='') )
{  // alert('Du skal intaste et tlf nr')       

  if (document.salgsprospekt.telefon.value.length < 8)
  {
    alert("Skriv mindst 8 tal i feltet \"Telefon - Dag\".");
    document.salgsprospekt.telefon.focus();
    error = 1;
  }

  if (document.salgsprospekt.telefon.value.length > 16)
  {
    alert("Skriv højst 16 tal i feltet \"Telefon - dag\".");
    document.salgsprospekt.telefon.focus();
    error = 1;
  }
   
  if (document.salgsprospekt.telefon2.value.length < 8)
  {
    alert("Skriv mindst 8 tal i feltet \"Telefon - Aften\".");
    document.salgsprospekt.telefon2.focus();
    error = 1;
  }

  if (document.salgsprospekt.telefon2.value.length > 16)
  {
    alert("Skriv højst 16 tal i feltet \"Telefon - aften\".");
    document.salgsprospekt.telefon2.focus();
    error = 1;
  }
}   
    return (error==0);
  }
// Slut -->
</script>
</head>

<body>

<div align="center">
  <center>
  <form action method="post" onsubmit="return valid();" name="salgsprospekt">
    <table border="0" cellpadding="2" style="border-collapse: collapse">
      <tr>
        <td width="100%" colspan="2">Jeg vil gerne kontaktes</td>
      </tr>
      <tr>
        <td width="20%">Navn</td>
        <td width="80%"><input type="text" name="navn" size="20"></td>
      </tr>
      <tr>
        <td width="20%">Adresse</td>
        <td width="80%"><input type="text" name="adresse" size="20"></td>
      </tr>
      <tr>
        <td width="20%">Telefonnr. - Dag</td>
        <td width="80%"><input type="text" name="telefon" size="20"></td>
      </tr>
      <tr>
        <td width="20%">Telefonnr. - Aften</td>
        <td width="80%"><input type="text" name="telefon2" size="20"></td>
      </tr>
      <tr>
        <td width="20%">Træffes bedst</td>
        <td width="80%">Dag <input type="text" name="traef_bedst_dag1" size="10">
        Tid <input type="text" name="traef_bedst_tid1" size="10"></td>
      </tr>
      <tr>
        <td width="20%">&nbsp;</td>
        <td width="80%">Dag <input type="text" name="traef_bedst_dag2" size="10">
        Tid <input type="text" name="traef_bedst_tid2" size="10"></td>
      </tr>
      <tr>
        <td width="100%" colspan="2">
        <input type="submit" value="Send" name="B1"><input type="reset" value="Nulstil" name="B2"></td>
      </tr>
    </table>
  </form>
  </center>
</div>
<p></p>
</form>

</body>
</html>
Avatar billede =maddog= Nybegynder
24. marts 2003 - 13:19 #1
af ren nysgerrighed mener du ikke
(document.salgsprospekt.telefon.value=='')||(document.salgsprospekt.telefon2.value=='')
altså hvis den ene ELLER den anden er tom skal der ske noget
Avatar billede krsk Nybegynder
24. marts 2003 - 13:20 #2
Det virker da ok, hvad er fejlen?

Jeg ville nok bruger .length istedet for != ''
også ville jeg bruge et regulært udtryk for at sikre mig at det rent faktisk er et telefon nr. Du kan evt. bruger isAnumber, men så må de ikke skrive +45 4654564 men kun 64654654, men det er som regel også ok, med mindre det er et internalt site.

Her er lidt om regulærer udtryk: http://www.sitepoint.com/article/286
Avatar billede hansen Nybegynder
24. marts 2003 - 13:36 #3
Når man trykker på "Send" knappen uden der er noget i telefonfelterne så beder den om input i både det ene eller andet telefonfelt, jeg kunne godt tænke mig at den først gør bruger opmærksom på at bruger skal taste et telefonnummer ind i et af felterne, for så herefter at teste om det er korrekt det der er tastet ind
Avatar billede krsk Nybegynder
24. marts 2003 - 13:51 #4
if ((document.salgsprospekt.telefon.value.length <= 0)&&(document.salgsprospekt.telefon.value.length <= 0))
{  // alert('Du skal intaste et tlf nr')       
alert('Du skal intaste mindst et tlf nr');
}
else if(document.salgsprospekt.telefon.value.length > 0)
{
her chekker du om indholdet er ok dvs. 8 tal;
alert('det skal være et rigtigt tlfnr.');
}
else if(document.salgsprospekt.telefon2.value.length > 0)
{
her chekker du om indholdet er ok dvs. 8 tal;
alert('det skal være et rigtigt tlfnr.');
}

Dette gør hvad du vil sådan cirka, dog har jeg ikke lavet det med at den automatisk chekker igen, da jeg ikke så godt kan lide det :-) (det vil jo blive valideret når han trykker submit) Men såfremt du insisterer :-) Så skal du bruge action: onBlur() på feltet som så validerer det når brugere klikker ud af det.

/kristian
Avatar billede krsk Nybegynder
24. marts 2003 - 13:51 #5
Hov måske er det et svar :-)
Avatar billede olebole Juniormester
24. marts 2003 - 13:57 #6
<ole>

Om man bruger value.length<=0 eller value!="" er fløjtende ligegyldigt ... bortset fra, at det første fylder mere.

Henvender sitet sig til danskere, bør svenske telefonnumre også validere positivt, da flere og flere danskere bosætter sig i Sverige, mens de arbejder og bruger en stor del af deres tid her i landet.

/mvh
</bole>
Avatar billede hansen Nybegynder
24. marts 2003 - 14:01 #7
Du har fået klippet den del ud der tjekker på min. 8 karakterer og max 16 karakterer, kan du sætte dem ind igen ?
Avatar billede hansen Nybegynder
25. marts 2003 - 13:09 #8
Hej krsk

Har du mulighed for at sætte valideringen ind igen i koden, så der tjekkes for at der er minimum 8 karakterer og max 16 i telefonfeltet.
Avatar billede olebole Juniormester
25. marts 2003 - 18:08 #9
else if(document.salgsprospekt.telefon2.value.length>7 && document.salgsprospekt.telefon2.value.length<17)
{
her chekker du om indholdet er over 7 og under 17 tal;
alert('det skal være et rigtigt tlfnr.');
}
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