Shhhhh - Don't let on, but here it is
This is a date validation we use - don't tell anyone I gave this to you buddy!
var dt1 = document.all.item("txtField1");
dy = dt1.value.substr(0,2);
mn = dt1.value.substr(3,2);
yr = dt1.value.substr(6,4);
if (!ValidateDate(dy,mn,yr)){
alert("The date entered must 10 characters long and take the form of 06/04/2000");
dt1.select();
return;
}
function ValidateDate(dy,mn,yr){
var date = new Array(2);
date[0] = dy;
date[1] = mn;
date[2] = yr;
var j = 0;
if (date[0].substr(0,1) == '0')
date[0] = date[0].substr(1,1);
switch (parseFloat(date[1])) {
case 1:
if ((parseInt(date[0]) < 1) || (parseInt(date[0]) > 31))
return false;
break;
case 2:
if ((date[2] % 4.0) == 0){
if ((parseInt(date[0]) < 1) || (parseInt(date[0]) > 29))
return false;
}else
if ((parseInt(date[0]) < 1) || (parseInt(date[0]) > 28))
return false;
break;
case 3:
if ((parseInt(date[0]) < 1) || (parseInt(date[0]) > 31))
return false;
break;
case 4:
if ((parseInt(date[0]) < 1) || (parseInt(date[0]) > 30))
return false;
break;
case 5:
if ((parseInt(date[0]) < 1) || (parseInt(date[0]) > 31))
return false;
break;
case 6:
if ((parseInt(date[0]) < 1) || (parseInt(date[0]) > 30))
return false;
break;
case 7:
if ((parseInt(date[0]) < 1) || (parseInt(date[0]) > 31))
return false;
break;
case 8:
if ((parseInt(date[0]) < 1) || (parseInt(date[0]) > 31))
return false;
break;
case 9:
if ((parseInt(date[0]) < 1) || (parseInt(date[0]) > 30))
return false;
break;
case 10:
if ((parseInt(date[0]) < 1) || (parseInt(date[0]) > 31))
return false;
break;
case 11:
if ((parseInt(date[0]) < 1) || (parseInt(date[0]) > 30))
return false;
break;
case 12:
if ((parseInt(date[0]) < 1) || (parseInt(date[0]) > 31))
return false;
break;
default:
return false;
break;
}
if ((parseInt(date[2]) < 0) || (isNaN(date[2])) || (date[2].length ==0))
return false;
else
return true;
}:cool: