Avatar billede ml Nybegynder
15. marts 2002 - 16:09 Der er 7 kommentarer og
1 løsning

Form validator - definer hvilke værdier der accepteres

Hvordan tjekker jeg om værdien af et tekst felt stemmer overens med nogle værdier som jeg definere?

Skal bruges til postnummer validering. Jeg skal kunne definere hvilke postnumre der accepteres, ikke blot større eller mindre end.

Bruger f.eks. denne ved validering:

  if (theForm.postnr.value == "")
  {
    alert("Indtast venligst dit postnummer.");
    theForm.postnr.focus();
    return (false);
  }
Avatar billede kamuku Nybegynder
15. marts 2002 - 16:15 #1
Smid de værdier det må være, eller dem det ikke må være i et array (tag dem der er færrest af), og små løb det igennem, når der faktisk er noget...
Du kan også tjekke på at den TAL-vrædi feltet har, ligger inden for de postnumre vi har i DK, ex. mellem 8000 og 8200 osv.
Avatar billede ml Nybegynder
15. marts 2002 - 16:27 #2
Skal bruge koden, er ikke så god til JavaScript.
Det skal være de postnumre det må være der defineres. F.eks. "2930,7800,800" :)
Avatar billede jakoba Nybegynder
16. marts 2002 - 13:20 #3
et lille script i head:

<script type="text/javascript"> <!-- //

var okNumre = new Array( 1234, 8500,    // ale de OK postnumre
                        2990, 5740,
                        4000 );

function validerPostNr( feltObj ) {
    var detteNummer = parseInt( "0"+feltObj.value, 10 );
    for ( var i=0; i<okNumre.length; i++ ) {
        if ( detteNummer == okNumre[i] ) return true; // nummer fundet. det er ok
    }
    return false; // nummeret blev ikke fundet i listen
}; //end validerPostnr( textfelt objekt ) -> boolean

// --> </script>


og en eksempel formular:

<form action="hvorhen.php" method='post'
      onsubmit="return validerPostNr( this.pnr )">

postnyummer: <input type='text' name='pnr'>

send knap: <input type='submit' value='Send'>

</form>

men hvis der er over 100 postnumre der er OK kan det godt være det bliver ubehageligt langsomt. så sig til.

mvh JakobA
Avatar billede Slettet bruger
16. marts 2002 - 18:29 #4
Ja, så smid de mest almindelige frem forrest i array'et!
Avatar billede ml Nybegynder
18. marts 2002 - 10:13 #5
Der er over 100 - fakstik skal alle postnumre i dk ind...
Der er 1308 ;)
Avatar billede ml Nybegynder
18. marts 2002 - 10:23 #6
Kan man ikke lave en InStr som man kender det fra asp. Altså tjekke om det indtastede postnummer er i strengen i stedet for at køre dem igennem en efter en..

ASP eks.
if InStr(",8000,8500,7800,400,", ",7800,") then
Har sat , før og efter så den ikke siger ok til f.eks. "800" da den jo er i "7800" :)
Avatar billede Slettet bruger
18. marts 2002 - 20:06 #7
Jooo... du kan selvfølgelig bruge regular expressions, men det er altså ikke nemmere. Faktisk meget sværere! :)
Avatar billede ml Nybegynder
10. januar 2003 - 15:35 #8
Har lavet det i ren ASP i stedet.
Men ellers tak :)
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