Sono partito da quelle discussioni ma non sono arrivato poi tanto bene 
ho scritto così:
codice:
<script language="javascript" type="text/javascript">
<!--
function cnvDate(strDate, offset)
{
if (offset) re = new RegExp("^(\\d{4})/(\\d{1,2})/(\\d{1,2})$", "");
else re = new RegExp("^(\\d{1,2})/(\\d{1,2})/(\\d{4})$", "");
if (!(dt = strDate.match(re))) return(null);
var day = dt[1 + offset];
var month = dt[2];
var year = dt[3 - offset];
if (month < 1 || month > 12) return(null);
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) return(null);
return(new Date(year, month - 1, day));
}
function CheckForm(Newform)
{
for ( var a = 0 ; a < Newform.elements.length ; a++ )
{
var campo = Newform.elements[a];
if (campo.value.length <= 0)
{
window.alert('Il campo "' + campo.name +'"\nè un campo obbligatorio in questo form.');
campo.focus();
return(false);
}
}
if (!(dtMin1 = cnvDate(Newform.DataMin.value, 0)))
{
alert("Errore di formato di DataMin !");
Newform.DataMin.focus();
Newform.DataMin.select();
return(false);
}
if (!(dtMax1 = cnvDate(Newform.DataMax.value, 0)))
{
alert("Errore di formato di DataMax !");
Newform.DataMax.focus();
Newform.DataMax.select();
return(false);
}
if (dtMin1.getTime() > dtMax1.getTime())
{
alert("Il campo DataMin è maggiore di DateMax");
Newform.DataMin.focus();
Newform.DataMin.select();
return(false);
}
// Abilita l'invio del FORM
return(true);
}
// -->
</script>
<form name="Newform" method="POST" ACTION="altrapagina.asp" onsubmit="return(CheckForm(this));">
Ma nonostante avvisi che DataMin è maggiore di DataMax il form viene comunque inviato.