Foros del Web » Programando para Internet » Javascript »

Validar HORA introducida en form

Estas en el tema de Validar HORA introducida en form en el foro de Javascript en Foros del Web. Hola a todos!!! ¿Cómo puedo comprobar que la hora introducida es correcta en una caja de texto de un form? Muchas Gracias :)...
  #1 (permalink)  
Antiguo 13/03/2002, 11:25
Avatar de TomaHawkk  
Fecha de Ingreso: diciembre-2001
Ubicación: España
Mensajes: 422
Antigüedad: 22 años, 11 meses
Puntos: 1
Validar HORA introducida en form

Hola a todos!!!

¿Cómo puedo comprobar que la hora introducida es correcta en una caja de texto de un form?

Muchas Gracias :)
  #2 (permalink)  
Antiguo 19/03/2002, 07:16
bet
 
Fecha de Ingreso: febrero-2001
Mensajes: 292
Antigüedad: 23 años, 9 meses
Puntos: 0
Re: Validar HORA introducida en form

Algo así te puede servir?
Código:
<HTML>
<HEAD>
<TITLE>Validaciones de Fechas y Horas</TITLE>
<SCRIPT language="JavaScript">

   numeros="0123456789";
   separadorfecha="/";
   var separadorhora=":";
   error= new creaerror();  
   errores= new Array();
  
   errores[1]="Campo vacio no contiene ningún valor ";
   errores[2]="Carácter ilegal en una fecha";
   errores[3]="Faltan separadores en una fecha";
   errores[4]="Año incorrecto en una fecha";
   errores[5]="Mes incorrecto en una fecha";
   errores[6]="Día incorrecto en una fecha";
   errores[7]="Carácter ilegal en una hora";
   errores[8]="Faltan separadores en una hora";
   errores[9]="Hora incorrecta en una hora";
   errores[10]="Minutos incorrectos en una hora";
   errores[11]="Segundos incorrectos en una hora";
  
   // Crea un objeto que guarda un indice a la posición y al mensaje de error
   function creaerror()   {
   this.valor=0;
   this.posicion=0;
   return this
   }
  
   // Determina si un caracter es un número
   function numero(car)  {
   return (numeros.indexOf(car)>=0)
   }
   function compruebahora(contenido,error) {
   if ((contenido.length==0))
      {
      error.valor=1;
      error.posicion=1; 
      return false;
      } 
   var nsep=0; 
   // Comprobación de la sintáxis de una hora 
   for (var i=0; i<contenido.length; ++i) {
      var car=contenido.charAt(i);
	  if (!numero(car) && car!=separadorhora) {
         error.valor=7;
         error.posicion=i+1; 
         return false;
         } 
      if (car==separadorhora)
		nsep++ 
      }
   if (nsep!=2) {
      error.valor=8;
      error.posicion=i+1; 
      return false;
      }
   // Comprobación de la semántica de una hora 
   var pos1=contenido.indexOf(separadorhora);
   var horas=contenido.substring(0,pos1);
   var pos2=contenido.indexOf(separadorhora,pos1+1);
   var minutos=contenido.substring(pos1+1,pos2);
Sigue...
  #3 (permalink)  
Antiguo 19/03/2002, 07:18
bet
 
Fecha de Ingreso: febrero-2001
Mensajes: 292
Antigüedad: 23 años, 9 meses
Puntos: 0
Re: Validar HORA introducida en form

Código:
   var segundos=contenido.substring(pos2+1,10);
   if (horas>24||horas.length>2) {
      error.valor=9;
      error.posicion=2; 
      return false;
      } 
   if (minutos>59||minutos.length>2) {
      error.valor=10;
      error.posicion=4;
      return false;
      }
   if (segundos>59||segundos.length>2) {
      error.valor=11;
      error.posicion=6;
      return false;
      } 
   return true 
   }
  
   function ejecuta() {
   var correcto;
         correcto=compruebahora(window.document.formulario.campo.value,error);
   if (correcto)
      alert("El campo es válido")
   else
      alert("El campo NO es válido. ERROR:"+errores[error.valor]+
            " en la posicion "+error.posicion);
   }
  
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="formulario" ACTION="">

   <CENTER>
   <B>Validaciones de Fechas y Horas</B><BR><BR>
   Dato:
   <INPUT TYPE="Text" VALUE="" NAME="campo" MAXLENGTH=10 SIZE=10><BR><BR>
   <INPUT TYPE="Button" VALUE="Validahora" onClick="ejecuta()"> 
   </CENTER>
   
</FORM>
</BODY>
</HTML>


<hr noshade size=1><img src="http://www.gograph.com/Images-8712/ClipArt/cat03.gif" height="50" border=0 align="absmiddle"> <font size="2" face="verdana" color="#000000">bet[/CODE]
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:14.