Avatar billede zybe Nybegynder
26. oktober 2010 - 08:56 Der er 14 kommentarer og
2 løsninger

Valider postnr. ud fra liste

Har brug for lidt hjælp til en simpel forhandler søgning.

Jeg vil gerne have at man kan indtaste et nr. i et felt og derefter trykke på en submit knap og scriptet giver besked om det indtastede postnr. findes i listen af postnr.

De tilladte postnr. kan f.eks. være: "6000, 7120, 7000, 6040 osv."

Der skal gerne gives en alert om postnr. er med i listen eller ej.

Er der en venlig sjæl der vil hjælpe mig med dette?!

På forhånd tak
Avatar billede majbom Novice
26. oktober 2010 - 09:04 #1
du kan lave listen til et array, og bruge in_array, til at tjekke om det indtastede findes i listen (arrayet)...
Avatar billede zybe Nybegynder
26. oktober 2010 - 09:28 #2
Jeg er bestemt ikke lige en haj til javascript, så har du mulighed for at give et konkret eksempel med input felt og submit knap?
Avatar billede majbom Novice
26. oktober 2010 - 09:48 #3
arh, troede det var php og ikke javascript, men du kan nok gøre sådan her:

lave strengen til et array:

var postnr_streng = "5000, 6720, 5500, 7000";
var postnr_array = postnr_streng.split(', ');


og tjekke om der indtastede findes i arrayet:

for(i=0;i<=postnr_array.length();i++){
  if(det_indtastede==postnr_array[i]){
      alert('nummeret findes!');
  }else{
      alert('nummeret findes ikke!');
  }
}
Avatar billede zybe Nybegynder
26. oktober 2010 - 09:52 #4
Tak skal du have..

Håber du også vil hjælpe med en sidste lille detalje :)

Hvordan submitter jeg et indtastet postnr. fra et input felt?
Avatar billede welcor Nybegynder
26. oktober 2010 - 10:01 #5
Det her er en naiv implementation:

<script type="text/javascript">
    var lovligePn = "1234,2345,3456";
    function validate() {
        var verdi = document.getElementById("pn").value;
        var lovligArray = lovligePn.split(",");
        var fundet = false;
        var i;
        for (i = 0; i < lovligArray.length; i++)
          if (lovligArray[i] == verdi)
            fundet = true;
       
        if (fundet)
            alert(verdi +" er ok");
        else
            alert(verdi +" er ikke ok");
       
        return fundet;
    }
</script>
<form>
<input type="text" id="pn" value="" />
<input type="submit" value="ok" onclick="java script:validate()"/>
</form>
Avatar billede majbom Novice
26. oktober 2010 - 10:06 #6
hvordan skal det submittes? skal det sendes til et script eller en mail, eller hvordan?
Avatar billede welcor Nybegynder
26. oktober 2010 - 10:18 #7
... ret lige det sidste av mit eksempel til

<form onsubmit="return validate()" action="XXX">
<input type="text" id="pn" value="" />
<input type="submit" value="ok" />
</form>

Hvor du i stedet for XXX skriver urlen du skal sende til.
Avatar billede zybe Nybegynder
26. oktober 2010 - 11:04 #8
Welcor> Det først forslag virker perfekt! Der skal nemlig ikke sendes til nogen side. Bare en alert er nok!

splazz> Mange tak for dine forslag!

Kan I ikke begge lave et svar, så I kan få nogle velfortjente point?!
Avatar billede majbom Novice
26. oktober 2010 - 11:21 #9
kommer her - husk dog at rette din onclick i din button, det er ikke nødvendigt at skrive 'java script:' foran funktionskaldet... :)
Avatar billede welcor Nybegynder
26. oktober 2010 - 11:52 #10
:)
Avatar billede zybe Nybegynder
28. oktober 2010 - 17:14 #11
Jeg har et lille tillægs spørgsmål :)

Løsningen fra welcor virker fint, men jeg har fundet ud af at jeg kan listen af postnr. også kan bruges et andet sted i systemet og der skal den se en lille smule anderledes ud.

P.t. ser listen sådan her ud:

var lovligePn = "1234,2345,3456";

Jeg vil gerne have listen til at se sådan her ud i stedet:

var lovligePn = ["1234,2345,3456"];

Problemet er, at når jeg lavet [] rundt om listen, så virker valideringen ikke.

Hvad skal jeg ændre i selve scriptet for at få det til at fungere med overstående?

På forhånd tak
Avatar billede welcor Nybegynder
28. oktober 2010 - 20:12 #12
var lovligArray = lovligePn[0].split(",");
Avatar billede zybe Nybegynder
28. oktober 2010 - 20:25 #13
Super... det virker perfekt!

TAK
Avatar billede zybe Nybegynder
02. november 2010 - 17:33 #14
Hej igen,

Var vist lige lidt for hurtig den anden dag.

Min liste ser sådan her ud:

var lovligePn = [1234,2345,3456];

Altså uden anførselstegn. Kan du endnu engang være behjælpelig med en løsning?

På forhånd tak!
Avatar billede welcor Nybegynder
02. november 2010 - 21:08 #15
var lovligArray = lovligePn;

(Eller bare brug lovligePn hele vejen igennem)
Avatar billede zybe Nybegynder
02. november 2010 - 21:18 #16
Endnu engang 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