Avatar billede justdoit Nybegynder
19. maj 2002 - 13:26 Der er 11 kommentarer og
2 løsninger

validering virker ikke ?

Jeg har en validering der ligger i en ekstern .js fil, som ser sådan ud:

function valider() {
var fejl = 0;
 
 
//Validere Fornavn
 
  if ( document.bruger.fornavn.value.length == 0 ) {
      //dette sker hvis fornavn.value.length er lig 0
      alert("Husk at udfylde navn");
      fejl = fejl+1;
      document.bruger.fornavn.focus(); // sætter cursor i feltet navn
      return false;  // nu bliver der ikke submitted.
  } else {
      //dette sker hvis fornavn.value.length er større end 0
      if ( ! document.bruger.fornavn.value.match( /^[a-åA-Å ]+$/ )) {
          alert("Navn kan kun indeholde bogstaver");
          fejl = fejl+1;
          document.bruger.fornavn.focus(); // sætter cursor i feltet navn
          return false;     
      }}


På siden hvor jeg skal have valideret feltet står der for øverst i dokumentet:

<SCRIPT LANGUAGE="JavaScript1.2" SRC="css/validering.js"></SCRIPT>


Og knappen jeg submitter på ser sådan ud:

<input type="image" img src="BILLEDER/Opret.gif" onFocus="valider()" width="40" height="12" border="0" value="send" name="image">


HVAD ER DER GALT ??
Avatar billede gryn Nybegynder
19. maj 2002 - 13:39 #1
Prøv at ændre scriptet til dette:

function valider() {
var fejl = 0;
 
 
//Validere Fornavn
 
  if ( document.bruger.fornavn.value.length == 0 ) {
      //dette sker hvis fornavn.value.length er lig 0
      alert("Husk at udfylde navn");
      fejl = fejl+1;
      document.bruger.fornavn.focus(); // sætter cursor i feltet navn
  } else {
      //dette sker hvis fornavn.value.length er større end 0
      if ( ! document.bruger.fornavn.value.match( /^[a-åA-Å ]+$/ )) {
          alert("Navn kan kun indeholde bogstaver");
          fejl = fejl+1;
          document.bruger.fornavn.focus(); // sætter cursor i feltet navn
      }}
if (fejl = 0){
document.bruger.submit(true);
}

}
Avatar billede mikoalngelo Nybegynder
19. maj 2002 - 13:45 #2
Hvad laver den der img inde i <input>-koden?
Avatar billede frida Nybegynder
19. maj 2002 - 13:49 #3
skal du ikke skrive return true - før sidste } ?
Avatar billede erikjacobsen Ekspert
19. maj 2002 - 14:39 #4
Du skal altid:

  <form .... onsubmit="return valider()">

og så huske at den laver en return true; hvis der ikke er fejl, som påpeget.
Avatar billede justdoit Nybegynder
19. maj 2002 - 14:46 #5
Jeg har prøvet at sætte det ind, men der er ikke nogen forskel. Det er som om at valideringen slet ikke bliver fortaget ??
Avatar billede erikjacobsen Ekspert
19. maj 2002 - 14:48 #6
Så er der vel syntaksfejl. Det synes som om de mangler en }
Avatar billede justdoit Nybegynder
19. maj 2002 - 14:52 #7
Du har helt ret med at valider() skal stå i form:

<Form name="bruger" method="post" onsubmit="return valider()" action="opretbruger.asp" style="margin:0px;">

Men jeg tjekker lige om der mangler en }
Avatar billede justdoit Nybegynder
19. maj 2002 - 15:04 #8
Når jeg trykker på knappen der submitter, skullen siden jo blive valideret via onsubmit="return valider()", men der sker ingen ting - Hvorfor ???
Avatar billede erikjacobsen Ekspert
19. maj 2002 - 15:08 #9
har du et link til siden - det er nemmere. Er du sikker på filen kan findes?
Avatar billede justdoit Nybegynder
19. maj 2002 - 15:16 #10
Jeg har det ikke liggende, men jeg kan sende det til dig??
Avatar billede erikjacobsen Ekspert
19. maj 2002 - 15:19 #11
Nej, det gider jeg ikke :)
Avatar billede jakoba Nybegynder
19. maj 2002 - 15:44 #12
der manglede som sagt en  } 

function valider() {
    var fejl = 0;
    //Validere Fornavn
    if ( document.bruger.fornavn.value.length == 0 ) {
        //dette sker hvis fornavn.value.length er lig 0
        alert("Husk at udfylde navn");
        fejl = fejl+1;
        document.bruger.fornavn.focus(); // sætter cursor i feltet navn
        return false;  // nu bliver der ikke submitted.
    } else {
        //dette sker hvis fornavn.value.length er større end 0
        if ( ! document.bruger.fornavn.value.match( /^[a-åA-Å ]+$/ )) {
            alert("Navn kan kun indeholde bogstaver");
            fejl = fejl+1;
            document.bruger.fornavn.focus(); // sætter cursor i feltet navn
            return false;   
        }
    }
    return true;
} // denne sluttuborg afslutter funktionen
Avatar billede justdoit Nybegynder
19. maj 2002 - 16:04 #13
Tak Jacoba - jeg havde lige fået det rettet, men kan du så ikke fortælle mig hvordan jeg får tjekket om kode1 og kode2 er den samme. Du ved, den der med at gentage kodeord - så får du pointene for det!!

//Validere Kode
 
  if ( document.bruger.kode.value.length == 0 ) {
      //dette sker hvis kode.value.length er lig 0
      alert("Husk at udfylde Kode");
      fejl = fejl+1;
      document.bruger.kode.focus(); // sætter cursor i feltet navn
      return false;  // nu bliver der ikke submitted.
  }
 
  //Validere Kode2
 
  if ( document.bruger.kode2.value.length == 0 ) {
      //dette sker hvis Kode2.value.length er lig 0
      alert("Husk at gentage Koden");
      fejl = fejl+1;
      document.bruger.kode.focus(); // sætter cursor i feltet navn
      return false;  // nu bliver der ikke submitted.
}
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