Ehm... sono ancora io che stresso...
la funzione che proponi non riesco a capirla bene....
io ho trovato questa...
codice:
function controlla_data() {
var Data1 = document.inviadati.Data1.value;
var Data2 = document.inviadati.Data2.value;
if (document.inviadati.Data1.value.substring(2,3) != "/" ||
document.inviadati.Data1.value.substring(5,6) != "/" ||
isNaN(document.inviadati.Data1.value.substring(0,2)) ||
isNaN(document.inviadati.Data1.value.substring(3,5)) ||
isNaN(document.inviadati.Data1.value.substring(6,10))) {
alert("Inserire Data1 in formato gg/mm/aaaa");
document.inviadati.Data1.value = "";
document.inviadati.Data1.focus();
return false;
}
else if (document.inviadati.Data1.value.substring(0,2) > 31) {
alert("Impossibile utilizzare un valore superiore a 31 per i giorni");
document.inviadati.Data1.select();
return false;
}
else if (document.inviadati.Data1.value.substring(3,5) > 12) {
alert("Impossibile utilizzare un valore superiore a 12 per i mesi");
document.inviadati.Data1.value = "";
document.inviadati.Data1.focus();
return false;
}
else if (document.inviadati.Data1.value.substring(6,10) < 1850) {
alert("Impossibile utilizzare un valore inferiore a 1900 per l'anno");
document.inviadati.Data1.value = "";
document.inviadati.Data1.focus();
return false;
}
if (document.inviadati.Data2.value.substring(2,3) != "/" ||
document.inviadati.Data2.value.substring(5,6) != "/" ||
isNaN(document.inviadati.Data2.value.substring(0,2)) ||
isNaN(document.inviadati.Data2.value.substring(3,5)) ||
isNaN(document.inviadati.Data2.value.substring(6,10))) {
alert("Inserire Data2 in formato gg/mm/aaaa");
document.inviadati.Data2.value = "";
document.inviadati.Data2.focus();
return false;
}
else if (document.inviadati.Data2.value.substring(0,2) > 31) {
alert("Impossibile utilizzare un valore superiore a 31 per i giorni");
document.inviadati.Data2.select();
return false;
}
else if (document.inviadati.Data2.value.substring(3,5) > 12) {
alert("Impossibile utilizzare un valore superiore a 12 per i mesi");
document.inviadati.Data2.value = "";
document.inviadati.Data2.focus();
return false;
}
else if (document.inviadati.Data2.value.substring(6,10) < 1850) {
alert("Impossibile utilizzare un valore inferiore a 1900 per l'anno");
document.inviadati.Data2.value = "";
document.inviadati.Data2.focus();
return false;
}
return true;
}
che funziona mica male salvo un paio di eccezioni che vorrei impostare... ovvero
se inserisco una data con i giorni postati a 00... me la accetta, ad esempio:
00/10/2005
oppure il controllo per l'anno bisestile... 29 febbraio 2004... 29 febbraio 2008, ecc...
ehm... come si fa?
Grazie