Para probar: copia este código y pega en un txt y cambia la extension del archivo a htm.
<html>
<head>
<!-- PRIMER PASO: Copiar dentro del tag HEAD -->
<script language="JavaScript">
function isValidDate(fch,origen) {
fecha= fch.split('/');
day=fecha[0];
month=fecha[1];
year=fecha[2];
if (fecha.length != 3){
alert('Fecha inválida en '+origen+'. Desde ser con formato dd/mm/aaaa');
return false;
}
if (isNaN(year)){
alert('Año inválido en '+origen+'. Desde ser numérico');
return false;
}else{
if (year < 1753) {
alert('Año inválido en '+origen+'. Debe ser del intervalo [1753-9999]');
return false;
}
}
if (isNaN(month)){
alert('Mes inválido en '+origen+'. Desde ser numérico');
return false;
}else{
if (month < 1 || month > 12) {
alert('Mes inválido en '+origen+'. Debe ser del intervalo [1-12]');
return false;
}
}
if (isNaN(day)){
alert('Día inválido en '+origen+'. Desde ser numérico');
return false;
}else{
if (day < 1 || day > 31) {
alert('Día inválido en '+origen+'. Debe ser del intervalo [1-31]');
return false;
}
}
if ((month == 4 || month == 6 || month == 9 || month == 11) &&
(day == 31)) {
alert('Día inválido en '+origen+'. Debe ser del intervalo [1-30] para el mes '+month);
return false;
}
if (month == 2) {
var leap = (year % 4 == 0 &&
(year % 100 != 0 || year % 400 == 0));
if (day>29 || (day == 29 && !leap)) {
alert('Día inválido para febrero en '+origen+'. Debe ser del intervalo [1-28 o 29 para años bisiestos]');
return false;
}
}
return true;
}
</script>
</head>
<body>
<!-- SEGUNDO PASO: Copiar dentro del tag BODY -->
<form name="f1">
<p>
Escriba cualquier cosa:
<input type="text" size="20" name="xxx">
</p>
<p>
Escriba una fecha (dd/mm/aaaa):
<input type="text" size="10" name="fec" onblur="isValidDate(this.value,'Fecha')">
</p>
<p>
Escriba cualquier cosa:
<input type="text" size="20" name="yyy">
</p>
</form>
</body>
</html>