Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/09/2005, 03:01
perrogrun
Invitado
 
Mensajes: n/a
Puntos:
Validación de fechas con ajax

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.