/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
javascript skal validere datofelt?
Fra : Thomas Brejner


Dato : 01-04-04 19:06

Hej
Jeg skal have lavet et javascript der skal validere et form input, den skal
checke at det er en dato der er indtastet, og så skal den checke om datoen
er mere end 1 måned fremme. Altså hvis den aktuelle dato er 01-04-04 så må
den nye max være 01-05-04.
Håber der er nogle der kan hjælpe med det.

Mvh
Thomas



 
 
Lasse Reichstein Nie~ (01-04-2004)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 01-04-04 22:20

"Thomas Brejner" <Brejner@AlkoGrotten.invalid> writes:

> Jeg skal have lavet et javascript der skal validere et form input, den skal
> checke at det er en dato der er indtastet,

Her skal du beslutte hvilket format (eller formater) datoen skal
indtastes i. Lad os sige det skal være dansk (dd/mm/åååå) eller ISO standard
åååå-mm-dd.

En test for formatet kunne være:

function validDate(string) {
var yr,mth,day;
var match = /^(\d{3,})([-\/])(\d{1,2})\2(\d{1,2})$/.exec(string);
if (match != null) { // iso-date
yr = Number(match[1]);
mth = Number(match[3])-1;
day = Number(match[4]);
} else {
match = /^(\d{1,2})([-\/])(\d{1,2})\2(\d{3,})$/.exec(string);
if (match != null) { // DK-date
yr = Number(match[4]);
mth = Number(match[3])-1;
day = Number(match[1]);
} else {
return null;
}
}
var date = new Date(yr,mth,day);
if (date.getMonth()!= mth || date.getDate()!= day) { // illegal date
return null;
}
return date;
}

Den returnerer en korrekt dato, hvis input er en, og ellers null.

> og så skal den checke om datoen
> er mere end 1 måned fremme. Altså hvis den aktuelle dato er 01-04-04 så må
> den nye max være 01-05-04.

Her skal du beslutte hvad en måned frem betyder. Det eksempel du gav er
simpelt. Hvad er en måned efter den 30. Januar?

Jeg vil vælge at en måned senere er samme dato næste måned, hvis den
findes, ellers sidste dag i næste måned. Jeg vil så finde tidspunktet
for midnat til dagen efter, og sammenligne.

function isWithinMonth(date,ofDate) {
ofDate = ofDate || new Date();
var nextMonth = new Date(ofDate.valueOf()); // start now
nextMonth.setHours(0,0,0,0); // ignore hours
nextMonth.setMonth(ofDate.getMonth()+1,ofDate.getDate()+1); // month later
if (nextMonth.getMonth != ((ofDate.getMonth()+1)%12)) { // if overflow
nextMonth.setDate(1);
}

// the test:
return date < nextMonth;
}

> Håber der er nogle der kan hjælpe med det.

Hvilken hjælp har du brug for? Du siger ikke at du har lavet noget selv,
så det lyder som om du gerne vil have et fuldt script forærende. :)
Ok, det fik du så næsten :)
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste