webForumDet fria alternativet

jämföring av datum

1 svar · 444 visningar · startad av Boko101

Boko101Medlem sedan juli 20071 inlägg
#1

Undra bara om man kan köra ett sånt här script för att jämföra att datumet inte är äldre eller är dagens datum...

function checkFields() {
missinginfo = "";
if(document.f.tidpunkt.selectedIndex == 0) {
missinginfo += "\n - Du måste välja ett År i Tidpunkt för flytt";
}//if sats för år
if(document.f.manad.selectedIndex == 0) {
missinginfo += "\n - Du måste välja en Månad i Tidpunkt för flytt";
}//if sats för månad
if(document.f.dag.selectedIndex == 0) {
missinginfo += "\n - Du måste välja en Dag i Tidpunkt för flytt";
}//if sats för dag

if(document.f.tidpunkt + document.f.manad + document.f.dag =\< getYear() + getMonth() + getDay()) {
missinginfo += "\\n - Du måste välja ett giltligt datum";
}//ifsats om datumet inte stämmer

f --> är namnet på det formulär i html koden och användaren knappar in det önskade datum.

Kan man skriva så här eller måste man skriva på ett annat sätt?
Tacksam för alla tips, länkar etc :)

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

Välkommen till wF! Nästa gång du ställer en fråga, använd gärna [code] för din kod. (Genom att klicka på ovanför rutan t ex)

Vad gäller din fråga så finns det ett enklare sätt. Du kan faktiskt jämföra Date-objekt med varandra. Så här kan du exempelvis göra:

function checkFields() {
	var missinginfo = "", ok = true;
	if(document.f.tidpunkt.selectedIndex == 0) {
		missinginfo += "\n - Du måste välja ett År i Tidpunkt för flytt";
		ok = false;
	}//if sats för år
	if(document.f.manad.selectedIndex == 0) {
		missinginfo += "\n - Du måste välja en Månad i Tidpunkt för flytt";
		ok = false;
	}//if sats för månad
	if(document.f.dag.selectedIndex == 0) {
		missinginfo += "\n - Du måste välja en Dag i Tidpunkt för flytt";
		ok = false;
	}//if sats för dag

	var thatDay=new Date(document.f.tidpunkt.value, document.f.manad.selectedIndex-1, document.f.dag.selectedIndex);

	if(thatDay>new Date() && ok) {
		missinginfo += "\n - Du måste välja ett giltligt datum";
		ok = false;
	}//ifsats om datumet inte stämmer

	return ok;	// Returnerar true om allt är ok, annars false
}

Jag tog mig friheten att utveckla funtionen lite. Detta funugerar under förutsättning att tidpunkt har ett value-attribut som innehåller året med fyra siffror.
Jag använder variabeln ok där eftersom fälten måste vara rätt ifyllda för att kontrollen ska fungera bra. Är de inte det så skippas den sista kontrollen.
Notera document.f.manad.selectedIndex-1. Månaderna börjar räknas från 0=januari. Eftersom 1=januari i ditt formulär justerade jag detta. För dag funkar kontrollen dock utan denna justering eftersom dagarna börjar räknas från 1 i javascript. Märkligt, men så är det.

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)