Ciao.
Cosa sbaglio in queste funzioni javascript, perchè non mi permette validare la data odierna?
Non dovrebbe validare solo le date antecedenti a quella odierna... invece non valida anche quella odierna... perchè?
codice:
var re = new RegExp("^(\\d{2})/(\\d{2})/(\\d{4})$", "");
var arrMonths = new Array("Gennaio", "Febbraio", "Marzo", "Aprile",
"Maggio", "Giugno", "Luglio", "Agosto",
"Settembre", "Ottobre", "Novembre", "Dicembre");
function checkDate(dateObj)
{
var dt = dateObj.value.match(re);
if (!dt)
{
alert("La data va inserita nel formato gg/mm/aaaa !");
return(false);
}
day = dt[1];
month = dt[2];
year = dt[3];
if (month < 1 || month > 12)
{
alert("Specificare un mese compreso tra 1 e 12 !");
return(false);
}
if (month == 2) maxDay = (!(year % 4) && ((year % 100) || !(year % 400))) ? 29 : 28;
else maxDay = (month == 4 || month == 6 || month == 9 || month == 11) ? 30 : 31;
if (day < 1 || day > maxDay)
{
alert("Il mese di " + arrMonths[month - 1] + " non ha " + day +
" giorni\nSpecificare un giorno compreso tra 1 e " + maxDay + " !");
return(false);
}
//INIZIO CONTROLLO VALORE DATA
var now = new Date();
now.setHours(0);
now.setMinutes(0);
now.setSeconds(0);
var theDate = new Date(year, month - 1, day, 0, 0, 0);
if(now.getTime() > theDate.getTime())
{
alert("Il sistema non prevede l'inserimento di date antecedenti a quella odierna.");
return false;
}
//FINE CONTROLLO DATA
return(true);
}
function convalidaForm(Qform)
{
// Controlla data_intervento
if (!checkDate(Qform.data_intervento))
{
Qform.data_intervento.focus();
Qform.data_intervento.select();
return(false);
}
return(true);
}