15. oktober 2008 - 14:08Der er
15 kommentarer og 1 løsning
funktion til validering af dato virker ikke
function ValidateDate() { var SDateD = document.getElementById(FM_start_dag).value; var SDateM = document.getElementById(FM_start_mrd).value; var SDateY = document.getElementById(FM_start_aar).value; var SDateH = document.getElementById(klok_timer).value; var SDateMm = document.getElementById(klok_min).value;
var EDateD = document.getElementById(FM_slut_dag).value; var EDateM = document.getElementById(FM_slut_mrd).value; var EDateY = document.getElementById(FM_slut_aar).value; var EdateH = document.getElementById(klok_timer_slut).value; var EdateMm = document.getElementById(klok_min_slut).value;
var alertReason1 = 'Slut Dato skal være efter eller den samme som startdatoen.'
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Du gør det ikke let for os, når vi selv skal gætte, hvad problemet er. =) "Virker ikke" er jo et meget vidt begreb. F.eks.: validerer den, men den validerer forkert? Får du en JavaScript-fejlmeddelelse, for de er jo til for at hjælpe med at løse problemet? Sker der slet ingen ting? Kan vi se hele din kode, eller endnu bedre, et link til problemet? Osv. :)
Men skal du ikke have anførselstegn rundt om dine getElementById-værdier?
function ValidateDate() { var SDateD = document.getElementById("FM_start_dag").value; var SDateM = document.getElementById("FM_start_mrd").value; var SDateY = document.getElementById("FM_start_aar").value; var SDateH = document.getElementById("klok_timer").value; var SDateMm = document.getElementById("klok_min").value;
var EDateD = document.getElementById("FM_slut_dag").value; var EDateM = document.getElementById("FM_slut_mrd").value; var EDateY = document.getElementById("FM_slut_aar").value; var EdateH = document.getElementById("klok_timer_slut").value; var EdateMm = document.getElementById("klok_min_slut").value;
var alertReason1 = "Slut Dato skal være efter eller den samme som startdatoen.";
Det er rigtigt - sry ;) Det jeg mente var at der bare slet ikke sker noget som helst. Ingen reaktion. Hvis du skal se hele koden får du nok ret lange løg. Det er viklet ind i 2040 liniers asp, men jeg kalder med Onchange="ValidateDate();"
-- den bør vel ikke virke, hvis man ikke tager højde for javascripts behandling af månedsnumre som index, hvor januar er 0, februar er 1 og december er 11 ...
-- derudover sammenligner du et Date-objekt med et andet Date-objekt direkte og det vil derfor være .toString-tingen, der bliver sammenlignet, prøv at kalde f.eks. .getTime() ...
-- og da du alligevel konstruerer Date-objektet ud fra en stribe tekster, der indeholder tal, kan du ligesågodt bruge tal-constructoren:
... var endDate = new Date(+EDateY,+EDateM-1,+EDateD,+EdateH,+EdateMm); var startDate = new Date(+SDateY,+SDateM-1,+SDateD,+SDateH,+SDateMm);
if (startDate.getTime() > endDate.getTime()) { ...
function ValidateDate() { var SDateD = document.getElementById("FM_start_dag").value; var SDateM = document.getElementById("FM_start_mrd").value; var SDateY = document.getElementById("FM_start_aar").value; var SDateH = document.getElementById("klok_timer").value; var SDateMm = document.getElementById("klok_min").value;
var EDateD = document.getElementById("FM_slut_dag").value; var EDateM = document.getElementById("FM_slut_mrd").value; var EDateY = document.getElementById("FM_slut_aar").value; var EdateH = document.getElementById("klok_timer_slut").value; var EdateMm = document.getElementById("klok_min_slut").value;
var alertReason1 = "Slut Dato skal være efter eller den samme som startdatoen.";
var endDate = new Date(+EDateY, +EDateM - 1, +EDateD, +EdateH, +EdateMm); var startDate = new Date(+SDateY, +SDateM - 1, +SDateD, +SDateH, +SDateMm);
en væsentlig poientering der rent faktisk løser mit problem. Det var forholdsvist dårligt set af mig, men lækkert at du spottede det. Jeg takker 1000 gange. Drop svar :)
Hvis du skriver onchange i stedet for Onchange (dvs. med små bogstaver) kan du i øvrigt bedre skifte til XHTML, når det en dag bliver understøttet af browserne. Det kræver nemlig, at attributnavne står med småt.
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.