Bueno, esta rutina se me ocurrió por lo complicado que es a veces la validación de fechas con javascript comparado con lo fácil que es por ejemplo con asp o cualquier otro lenguaje de servidor. Esto es lo que he hecho por si a alguien le sirve (sólo está testado para IE)
Código:
<html>
<head>
<script language="JavaScript" type="text/javascript">
var xmlhttp
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")
} catch (e) {
try {
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
} catch (E) {
xmlhttp=false
}
}
@else
xmlhttp=false
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp=false
}
}
function valfecha(){
var txt = window.event.srcElement;
var url='isdate.asp?fecha=' + txt.value;
//alert(url);
xmlhttp.open("GET",url,true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
if (xmlhttp.responseText=='no'){
alert('Debe introducir una fecha correcta');
txt.value='';
txt.focus();
}
else
{
if (xmlhttp.responseText!='yes'){
txt.value=xmlhttp.responseText;
}
}
}
}
xmlhttp.setRequestHeader('Accept','message/x-jl-formresult');
xmlhttp.send();
return false;
}
</script>
</head>
<body>
<input type="text" onblur="valfecha()" class="txt" name="fechaanillas" value="">
</body>
</html>
y la página isdate.asp sería esta
Código:
<%if isdate(request("fecha"))= true then
response.write("yes")
else
if request("fecha") = "" then
response.write(date())
else
response.write("no")
end if
end if%>
La función es la típica que valida fechas pero si lo que hay en la caja de texto está en blanco pone la fecha actual.
Bueno, es por si a alguien le sirve.