Avatar billede mimi Nybegynder
19. marts 2001 - 18:52 Der er 3 kommentarer og
1 løsning

Kan man have 2 for-løkker i samme function?

Jeg har følgende script, som virker fint:

<html>
<head>
<title>Bestillingsformular</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">


<SCRIPT LANGUAGE=\"JavaScript\">

function tjekForm (thisform) {
        var navn = (document.myForm.navn.value);
        var adresse = (document.myForm.adresse.value);
        var postnr = (document.myForm.postnr.value);
        var by = (document.myForm.by.value);
        var land = (document.myForm.land.value);
        var kontonr = (document.myForm.kontonr.value);
        var betalDato = (document.myForm.betalDato.value);

        if (navn == \"\"){
          window.alert(\"Du skal indtaste dit navn\");
          return false;
        }

        if (adresse == \"\"){
          window.alert(\"Du skal indtaste din adresse\");
          return false;
        }

        if (postnr == \"\"){
          window.alert(\"Du skal indtaste postnr.\");
          return false;
        }
       
        for (i=0; i<postnr.length; i++) {
                if (postnr.charAt(i) < \"0\") {
                    window.alert(document.myForm.postnr.value+\" er ikke et gyldigt Postnummer\");
                    return false;
                }
                if (postnr.charAt(i) > \"9\") {
                    window.alert(document.myForm.postnr.value+\" er ikke et gyldigt Postnummer\");
                    return false;
                }
            }
            return true       
       
        if (by == \"\"){
          window.alert(\"Du skal indtaste en by\");
          return false;
        }

        if (land == \"\"){
          window.alert(\"Du skal indtaste et land\");
          return false;
        }

        if (kontonr == \"\"){
          window.alert(\"Du skal indtaste dit kontonummer\");
          return false;
        }
       
       
       

   
    return true;
   
}

       

       



</SCRIPT>

</head>



<body bgcolor=\"#FFFFFF\">

<form name=myForm onsubmit=\"return tjekForm(this);\">
  <table width=\"100%\" border=\"0\">
    <tr>
      <td width=\"12%\">Navn:</td>
      <td width=\"54%\">
        <input type=\"text\" name=\"navn\">
      </td>
      <td width=\"34%\">&nbsp;</td>
    </tr>
    <tr>
      <td width=\"12%\">Adresse:</td>
      <td width=\"54%\">
        <input type=\"text\" name=\"adresse\">
      </td>
      <td width=\"34%\">&nbsp;</td>
    </tr>
    <tr>
      <td width=\"12%\">Postnr.</td>
      <td width=\"54%\">
        <input type=\"text\" name=\"postnr\">
      </td>
      <td width=\"34%\">&nbsp;</td>
    </tr>
    <tr>
      <td width=\"12%\">By:</td>
      <td width=\"54%\">
        <input type=\"text\" name=\"by\">
      </td>
      <td width=\"34%\">&nbsp;</td>
    </tr>
    <tr>
      <td width=\"12%\">Land:</td>
      <td width=\"54%\">
        <input type=\"text\" name=\"land\">
      </td>
      <td width=\"34%\">&nbsp;</td>
    </tr>
    <tr>
      <td width=\"12%\">Betalingsform:</td>
      <td width=\"54%\">
        <select name=\"select\" size=\"1\">
          <option>Dankort</option>
          <option>VISA/Dankort</option>
        </select>
      </td>
      <td width=\"34%\">&nbsp;</td>
    </tr>
    <tr>
      <td width=\"12%\">Kontonummer:</td>
      <td width=\"54%\">
        <input type=\"text\" name=\"kontonr\">
      </td>
      <td width=\"34%\">&nbsp;</td>
    </tr>
    <tr>
      <td width=\"12%\">Betalingsdato:</td>
      <td width=\"54%\">
        <input type=\"text\" name=\"betalDato\">
      </td>
      <td width=\"34%\">&nbsp;</td>
    </tr>
    <tr>
      <td width=\"12%\">&nbsp;</td>
      <td width=\"54%\">&nbsp;</td>
      <td width=\"34%\">&nbsp;</td>
    </tr>
    <tr>
      <td width=\"12%\">&nbsp;</td>
      <td width=\"54%\">
        <input type=\"submit\" value=\"Send\">
        <input type=\"reset\" value=\"Slet\">
      </td>
      <td width=\"34%\">&nbsp;</td>
    </tr>
  </table>
</form>

</body>
</html>

Jeg vil nu gerne validere kontonummer-feltet, således man får en fejlmeddelse, hvis ikke det indtastede er et tal (ligesom ved postnummer). Mit spørgsmålet er så: Kan man lave en for-løkke mere i function tjekForm(). I så fald - hvordan? Hvis ikke - hvordan så?
Og forresten... hvordan kan man validere på antal cifre? Hvis jeg nu f.eks. gerne vil tjekke at postnummeret er på 4 cifre?
Avatar billede torbenkoch Nybegynder
19. marts 2001 - 18:58 #1
To for løkker inden i hinanden kunne se sådan ud:

for (i=0; BETINGELSE; i++)
{
  for (j=0; BETINGELSE; j++)
  {

  }
}


Postnummerlængde:

Du checker da bare på om

  postnr.length == 4

Ikk\'!
Avatar billede nute Nybegynder
19. marts 2001 - 19:01 #2
istedenfor:

      for (i=0; i<postnr.length; i++) {
                if (postnr.charAt(i) < \"0\") {
                    window.alert(document.myForm.postnr.value+\" er ikke et gyldigt Postnummer\");
                    return false;
                }
                if (postnr.charAt(i) > \"9\") {
                    window.alert(document.myForm.postnr.value+\" er ikke et gyldigt Postnummer\");
                    return false;
                }
            }
            return true       
       
       
skal du skrive:

if( postnr.length == 4 ){
  if( !isNaN(postnr) ){
    alert(\"Postnummer skal kun bestå av tall\");
  }
  if( postnr < 0 ){
    alert(\"Postnummer skal være større enn 0\");
  }
} else if{
  alert(\"Postnummer skal være på 4 tall\");
}

men det blir jo ikke noe godt uansett, for man kan jo allikevel taste inn ugyldige postnummer...

/nute
Avatar billede mimi Nybegynder
19. marts 2001 - 21:49 #3
nute for pointene, for det er hans (hendes?) løsning, der virker bedst. Håber det er ok.

Jeg har dog lige et lille spørgsmål mere...
Hvis postnummeret ikke er på 4 cifre og man får en fejlmeddelse, som man trykker OK til, resetter den formen. Hvordan får man den til at lade være med det?
Avatar billede mimi Nybegynder
19. marts 2001 - 21:55 #4
Glem det - jeg har fundet ud af det!!!
Tak for hjælpen
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