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  