Foros del Web » Programando para Internet » Javascript »

Validar formulario (fecha)

Estas en el tema de Validar formulario (fecha) en el foro de Javascript en Foros del Web. Hola, tengo un formulario con un campo, donde se inserta una fecha (con formato 0000-00-00 (año, mes, dia) y me gustaria que al darle a ...
  #1 (permalink)  
Antiguo 02/06/2006, 14:32
Avatar de kokecola2k2  
Fecha de Ingreso: febrero-2004
Mensajes: 130
Antigüedad: 20 años, 2 meses
Puntos: 0
Validar formulario (fecha)

Hola, tengo un formulario con un campo, donde se inserta una fecha (con formato 0000-00-00 (año, mes, dia) y me gustaria que al darle a enviar comprobara si la fecha metida no es anterior al dia actual, y no supera, por ejemplo, 7 días más a partir del día de hoy.

Lo que no se es hacer esa función, si alguien me ayuda...
  #2 (permalink)  
Antiguo 03/06/2006, 03:14
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola kokecola2k2

A ver si te sirve esto:
Código PHP:
<html>
<
head>
<
script type="text/javascript">
function 
valida(fec) {
  
fec=fec.split('-').join('/');
  
f1=new Date(fec);
  
f2=new Date();
  if (
f1<f2)
    
alert('La fecha no puede ser anterior');
  
f2.setTime(f2.getTime()+7*24*60*60*1000);
  if (
f1>f2)
    
alert('Han pasado más de 7 días'); 
}
</script>
</head>
<body>
<form>
<input type="text" name="fecha" />
<input type="button" value="Validar" onclick="valida(fecha.value)" />
</form>
</body>
</html> 
Saludos,
  #3 (permalink)  
Antiguo 03/06/2006, 08:10
Avatar de kokecola2k2  
Fecha de Ingreso: febrero-2004
Mensajes: 130
Antigüedad: 20 años, 2 meses
Puntos: 0
Me sirve más o menos, pero tengo 2 problemas:

Primero, si la fecha es la de hoy, dice que no puede ser anterior

Y segundo, yo lo tengo puesto onclick en el boton para enviar un formulario, y me gustaria que si da alguno de los 2 errores no enviara el formulario, que solo lo envíe cuando no da ninguno de los 2 errores (cuando sea correcto)

He puesto en los if un return false (no se si será asi) pero asi no funcina

A ver si sabes como solucionar estas 2 cosillas

Gracias por contestar :)
  #4 (permalink)  
Antiguo 03/06/2006, 08:32
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

El problema es que el código coge la fecha de hoy a las 00:00 y si lo están escribiendo 1 minuto después lo toma como una fecha anterior. He hecho algunos retoque, a ver que tal:
Código PHP:
<html>
<
head>
<
script type="text/javascript">
function 
valida(fec) {
  
fec=fec.split('-').join('/');
  
f1=new Date(fec+' 23:59:59');
  
f2=new Date();
  if (
f1<f2) {
    
alert('La fecha no puede ser anterior');
    return 
false;
    }
  
f2.setTime(f2.getTime()+7*24*60*60*1000);
  if (
f1>f2) {
    
alert('Han pasado más de 7 días');
    return 
false;
    } 
}
</script>
</head>
<body>
<form action="javascript:alert('si')" onsubmit="return valida(fecha.value)">
<input type="text" name="fecha" />
<input type="submit" />
</form>
</body>
</html> 
Saludos,
  #5 (permalink)  
Antiguo 03/06/2006, 11:11
Avatar de kokecola2k2  
Fecha de Ingreso: febrero-2004
Mensajes: 130
Antigüedad: 20 años, 2 meses
Puntos: 0
Así funciona perfectamente

Asias!!
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 15:25.