Avatar billede twister2010 Nybegynder
23. januar 2001 - 16:07 Der er 14 kommentarer og
1 løsning

Dato validering

Er der nogen som har et script til dato
validering, så brugeren bliver rettet hvis ikke dd-mm-åååå bliver indtastet korrekt ?
Avatar billede sone Nybegynder
23. januar 2001 - 16:13 #1
Brug CDate med en ON ERROR omkring.
Avatar billede twister2010 Nybegynder
23. januar 2001 - 16:19 #2
Kan du ikke prøve at give et eksempel ?
Avatar billede sone Nybegynder
23. januar 2001 - 16:28 #3
temp = \"29-02-2001\"
Response.Write(temp & \"<BR>\")
ON ERROR RESUME NEXT
temp = CDate(temp)
IF err.number>0 THEN
  Response.Write(\"Datoen har ikke korrekt format - skal være som \" & Date() & \"<BR>\")
ELSE
  Response.Write(\"Korrekt datoformat<BR>\")
END IF
ON ERROR GOTO 0
Avatar billede vandhunden Nybegynder
23. januar 2001 - 16:49 #4
tastdato = indtastet dato
if mid(tastdato,1,2)>31 then notokay = 1
if mid(tastdato,1,2)<1 then notokay = 1
if mid(tastdato,4,2)>12 then notokay = 1
if mid(tastdato,4,2)<1 then notokay = 1
if mid(tastdato,7,4)>2001 then notokay = 1
if mid(tastdato,7,4)<1900 then notokay = 1
if notokay = 1 then response.write(\"Mission failed\")
Avatar billede sone Nybegynder
24. januar 2001 - 07:42 #5
vandhunden:
Din skal kodes om hvis man gerne vil skifte til f.eks. en UK dato - CDate bruger det som systemet er sat op til.
Avatar billede vandhunden Nybegynder
25. januar 2001 - 16:21 #6
sone > hvorfor? Så vidt jeg ved bruger de også det der system med 365 dage og 12 måneder. Det her har faktisk ikke noget at gøre med systemet, den skal jo bare teste en dato som brugeren har indtastet om den opfylder kravet: dd-mm-åååå...
Avatar billede sone Nybegynder
26. januar 2001 - 08:25 #7
UK-format kunne være: 01-26-2001

Din fejlen også hvis man taster: 26-1-2001, 26-1-01 osv.
Avatar billede twister2010 Nybegynder
26. januar 2001 - 09:23 #8
Hej har fuldt med i jeres diskusion. Jeg syntes ikke rigtig at nogen af jeres forslag er særlige gode. Ved sone\'s forslag fremprovokere, man en fejl, hvilket er rimelig \"grimt\". Vandhundens svar er i den retning jeg gerne vil. Men den foreslået løsningen virker lidt primitiv. Den tager ikke højde for skudår, engelske datoer, februar med kun 28 dage. Kan i ikke fremskaffe en pæn og god løsning ? 
Avatar billede sone Nybegynder
26. januar 2001 - 10:00 #9
I stedet for CDate kan man bruge IsDate - noget pænere...
http://netcoders.dk/docs/vbscript/vsfctIsDate.htm
Avatar billede vandhunden Nybegynder
26. januar 2001 - 11:51 #10
twister > Jeg kan nok ikke gøre det bedre, da jeg ikke er haj til sproget. Det var bare lige noget jeg slyngede ud som et skud i tågen, i håb om at du måske kunne bruge noget af det. Men jeg tror godt det kan forbedres, bare ikke af mig .o0:-)
Avatar billede Søren Bech Morsing Praktikant
28. februar 2001 - 11:07 #11
og hvordan gør man det i JavaScipt
Avatar billede sone Nybegynder
26. marts 2001 - 09:32 #12
Hallo... hvad er der galt med vores svar ?
Avatar billede nuno Nybegynder
15. maj 2001 - 11:27 #13
twister2010> hvis du helt vil undgå fejl - så er du nødt til at validere i javascript, da VBScript ikke har såkaldt pessimistisk errorhandling (man håndterer fejl EFTER de er opstået) - dette kan kun undgås ved at validere på formdata inden de bliver submittet!

/nuno
Avatar billede nuno Nybegynder
15. maj 2001 - 11:28 #14
argh........ VBScript HAR pessimistisk errorhandling - ikke omvendt.

/nuno
Avatar billede twister2010 Nybegynder
18. oktober 2001 - 10:41 #15
Beklager drenge
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
Kurser inden for grundlæggende programmering

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