Avatar billede seamus Nybegynder
15. januar 2006 - 16:03 Der er 4 kommentarer og
1 løsning

Valider om en person er over 18 år

Hej eksperter...

Jeg har bøvlet med at få et javascript til at finde ud af, om man er over 18 år...

I inputfeltet angives fødselsdatoen som 'dd-mm-åååå', og jeg har brug for at vide om brugeren er over 18 for at han/hun kan fortsætte (dette er IKKE til et pornosite!!!)...

<input type="text" name="Foedt" value="dd-mm-åååå">

Brugeren skriver altså selv datoen i feltet, og jeg validerer på, at formatet er præcis som herover - mangler så bare at finde ud af, om personen er over 18 - hvis ikke, skal man alertes...

Please help!!
Avatar billede roenving Novice
16. januar 2006 - 05:07 #1
Den største probelmatik er, at datoer ikke er lige ud, og kan give problemer ved månedsskifter m.m., men f.eks.

<script type="text/javascript">
function validAge(elm){
  if(!elm.value.match(/^\d\d\-\d\d\-\d{4}$/)){
    alert("Forkert format for fødselsdato!");
    elm.focus();
    return false;
  }
  var d = elm.value.split("-");
  var oD = new Date(d[2],d[1]-1,d[0]);
  if(oD.getFullYear() != d[2] || oD.getMonth()+1 != d[1] || oD.getDate() != d[0]){
    alert("Ugyldig fødselsdato!");
    elm.focus();
    return false;
  }
  var nu = new Date();
  if(d[2]>nu.getFullYear()-18 || (d[2]==nu.getFullYear()-18 && d[1]-1>nu.getMonth()) || (d[2]==nu.getFullYear()-18 && d[1]-1==nu.getMonth() && d[0]<nu.getDate())){
    alert("Du skal være over 18 år for at deltage i denne konkurrence!");
    location.href = "underAtten.html";
  }
}
</script>

<input type="text" name="Foedt" value="dd-mm-åååå" onchange="validAge(this);">
Avatar billede seamus Nybegynder
16. januar 2006 - 13:28 #2
Det var lige præcis

  if(d[2]>nu.getFullYear()-18 || (d[2]==nu.getFullYear()-18 && d[1]-1>nu.getMonth()) || (d[2]==nu.getFullYear()-18 && d[1]-1==nu.getMonth() && d[0]<nu.getDate()))

jeg havde brug for.
Det virker perfekt, så hvis du lægger det som svar, er der point :-)
Avatar billede roenving Novice
16. januar 2006 - 15:44 #3
Velbekomme '-)

-- men behold selv de fleste af dine point !-)
Avatar billede seamus Nybegynder
16. januar 2006 - 15:45 #4
Nix - du får det hele, for det var ret vigtigt at få på plads... :-)
Avatar billede roenving Novice
16. januar 2006 - 16:05 #5
Tak for point ;~}
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