ho fatto il seguente controllo per un modulo di immissione di vari campi tra i quali la data di arrivo e quella di partenza (il modulo si chaima compila):
function valida()
{
if (document.compila.GA.value == "")
{
alert("Non hai inserito il giorno di arrivo");
return false;
}
if (document.compila.MA.value == "")
{
alert("Non hai inserito il mese di arrivo");
return false;
}
if (document.compila.AA.value == "")
{
alert("Non hai inserito l'anno di arrivo");
return false;
}
{
ga = document.compila.GA.value;
ma = document.compila.MA.value;
aa = document.compila.AA.value;
var now = new Date(); // data odierna in millisecondi
var arrivo = new Date(aa, parseInt(ma)-1, ga);
if (now>arrivo) {
alert("Attenzione, la data di arrivo è precedente a quella di oggi");
return false;
}
}
if (document.compila.GP.value == "")
{
alert("Non hai inserito il giorno di partenza");
return false;
}
if (document.compila.MP.value == "")
{
alert("Non hai inserito il mese di partenza");
return false;
}
if (document.compila.AP.value == "")
{
alert("Non hai inserito l'anno di partenza");
return false;
}
{
ga = document.compila.GA.value;
ma = document.compila.MA.value;
aa = document.compila.AA.value;
gp = document.compila.GP.value;
mp = document.compila.MP.value;
ap = document.compila.AP.value;
if (aa>ap) {
alert("Attenzione, l'anno di partenza è precedente a quello di arrivo");
return false;
}
if (aa==ap && ma>mp) {
alert("Attenzione, il mese di partenza è precedente a quello di arrivo");
return false;
}
if (aa==ap && ma==mp && ga>gp) {
alert("Attenzione, il giorno di partenza è precedente a quello di arrivo");
return false;
}
}
...
lo script controllla sia la che i campi siano riempiti sia che la data di arrivo sia precedente a quella di partenza.
PROBLEMA:
sul controllo se la data di arrivo è precedente a quella di oggi ho verificato che se immetto una data compresa tra il 1 agosto 2003 e il 31 settembre 2003 mi dice ugualmente che è precedente a quella di oggi.... per tutte le altre date funziona benissimo (almeno per quelle che ho provato ma sono sicuro che testando a fondo verrebebro fuori altre magagne)..
chiaramente sbaglio qualcosa...
chi mi sa dire cosa?
[...]
var now = new Date(); // data odierna in millisecondi
var arrivo = new Date(aa, parseInt(ma)-1, ga);
if (now>arrivo) {
alert("Attenzione, la data di arrivo è precedente a quella di oggi");
return false;
}
[...]
grazie per ogni eventuale delucidazione.