[js] age check probleem

Pagina: 1
Acties:

  • edwinistrator
  • Registratie: December 2000
  • Laatst online: 23-03-2022
ik heb een formulier en nu wil ik de leeftijd controleren met behulp van een javascript, zie http://www.operation3.com/test.html . Het script werkt heel aardig behalve als ik voor de maanden 08 of 09 invoer dan geeft ie de alert, voer ik gewoon 8 of 9 in gaat het wel goed.

Ik kom er maar niet uit, wat doe ik fout?

  • André
  • Registratie: Maart 2002
  • Laatst online: 10:51

André

Analytics dude

if (c < "0" || c > "9")

Wordt:

if ((parseInt(c) < 0) || (parseInt(c) > 9))

En je kunt zoiets beter controleren met reguliere expressies.

[ Voor 44% gewijzigd door André op 07-03-2003 15:29 ]


  • edwinistrator
  • Registratie: December 2000
  • Laatst online: 23-03-2022
aangepast (ook online) maar het werkt niet...

  • André
  • Registratie: Maart 2002
  • Laatst online: 10:51

André

Analytics dude

Wat een lading code om de datum te controleren trouwens, dat kan veel korter. Eerst checken of de datum 10 karakters lang is en daarna checken of de waarden binnen de toegestane waarden zijn. (dus maand = 1 tot 12 enz...).

  • edwinistrator
  • Registratie: December 2000
  • Laatst online: 23-03-2022
ja maar zoals je misschien al begrijpt ben ik geen jacascript king, dus... ben ik gewoon blij als het met de lange code ook werkt :) , of heb je een voorbeeldje van een kleiner scriptje, want ik krijg het nog steeds niet werkend. :'(

[ Voor 28% gewijzigd door edwinistrator op 07-03-2003 15:56 ]


  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

of je gebruikt gewoon het Date object.... :)

"You're only as good, as what you did last week."


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

Precies.. je kunt Date's gewoon met elkaar vergelijken :)

  • edwinistrator
  • Registratie: December 2000
  • Laatst online: 23-03-2022
Ik wil toch geen Date met elkaar vergelijken?
ik wil dat het script maand 08 en 09 accepteerd.

dus orgineel script valt niet te fixen...:?

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

operation3 schreef op 07 maart 2003 @ 16:06:
Ik wil toch geen Date met elkaar vergelijken?
ik wil dat het script maand 08 en 09 accepteerd.

dus orgineel script valt niet te fixen...:?


Dan snap ik niet helemaal wat je wil.. wat bedoel je met "leeftijd controleren"? Iemand vult een geboortedatum in en je wilt achterhalen hoe oud iemand is ofzo?

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 10:36

crisp

Devver

Pixelated

code:
1
parseInt(c, 10)


Vergelijk:

alert(parseInt('010')); // geeft 8 (octaal)
alert(parseInt('08')); // geeft 0 (geen geldig octaal getal)
alert(parseInt('010', 10)); // geeft 10 (decimaal)

[ Voor 74% gewijzigd door crisp op 07-03-2003 16:15 ]

Intentionally left blank


  • edwinistrator
  • Registratie: December 2000
  • Laatst online: 23-03-2022
Bosmonster schreef op 07 maart 2003 @ 16:09:

[...]


Dan snap ik niet helemaal wat je wil.. wat bedoel je met "leeftijd controleren"? Iemand vult een geboortedatum in en je wilt achterhalen hoe oud iemand is ofzo?
Als je in januari geboren bent, is dat maand 1 en geef je 1 of 01 op en dat gaat goed,
je kan geen 13 opgeven want dat is geen geldige maand,
maar nu is het probleem dus dat maand 8 en 9 wel goed gaat en 08 en 09 niet.

Dat probeerde ik dus op te lossen.
Maar ik kan dus (nog) niet goed in javascript en zijn jullie antwoorden mij al gauw te moeilijk, zo begrijp ik dus niet goed wat ik met Crisp's zijn antwoord moet doen

code:
1
2
3
alert(parseInt('010')); // geeft 8 (octaal)
alert(parseInt('08')); // geeft 0 (geen geldig octaal getal)
alert(parseInt('010', 10)); // geeft 10 (decimaal)

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 22-08 08:30
Crisp doelt op het feit dat parseInt() strings die met "0" beginnen standaard als onderdeel van het octale getallenstelsel opvat en daarom "8" (decimaal) teruggeeft.

Geef je als string echter "10,7" ofzo op dan, vat parseInt() dat op als een getal uit het 'decimale' getallenstelsel en geeft hij 10 terug.

Wat je dus moet doen om van getallen die beginnen met een "0" decimale getallen te maken is expliciet het getallenstelsel meegeven aan parseInt(). Dit doe je door als tweede argument "10" op te geven, dus bijvoorbeeld:

Maand = parseInt('08', 10);
Pagina: 1