Foros del Web » Programando para Internet » Javascript »

Validar fecha de formulario no funciona

Estas en el tema de Validar fecha de formulario no funciona en el foro de Javascript en Foros del Web. Hola de nuevo, Siguiente atasco en la validación de formulario que estoy intentando conseguir, (el anterior fue solucionado obviamente por vosotros). Tenia ya todo listo ...
  #1 (permalink)  
Antiguo 21/01/2008, 11:59
NiB
 
Fecha de Ingreso: octubre-2005
Mensajes: 59
Antigüedad: 18 años, 6 meses
Puntos: 0
Validar fecha de formulario no funciona

Hola de nuevo,

Siguiente atasco en la validación de formulario que estoy intentando conseguir, (el anterior fue solucionado obviamente por vosotros).

Tenia ya todo listo y funcionando pero a la que inserto el código de validación del campo fecha todo se va al garete y pasa directamente al action.
A ver si podéis echarme una mano también en este asunto porque por mas vueltas que le doy no consigo ver el porque.

Código PHP:
<html>
<
head>
<
script language="javascript" type="text/javascript">

function 
validacion(formulario) {

    var 
msg='';
          
    
//comprueba campo de username
    
var er_username = /^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|s|.|-)+$/
    if(!
er_username.test(formulario.username.value)) { 
    
msg="-Bad username \n";
    }       
    
//comprueba campo de email
    
var er_email = /^(.+@.+..+)$/
    if(!
er_email.test(formulario.email.value)) { 
    
msg msg+"-Bad email \n";
    }       
    
//------------------------------------------------------------------------------
//comprueba campo de Fecha
        
var Fecha= new String(formulario.fecha.value)
        var 
RealFecha= new Date()
    
// Cadena Año
        
var Ano= new String(Fecha.substring(Fecha.lastIndexOf("-")+1,Fecha.length))
    
// Cadena Mes
        
var Mes= new String(Fecha.substring(Fecha.indexOf("-")+1,Fecha.lastIndexOf("-")))
    
// Cadena Día
        
var Dia= new String(Fecha.substring(0,Fecha.indexOf("-")))
    
    
// Valido el año
        
if (isNaN(Ano) || Ano.length<|| parseFloat(Ano)<1900){
        
msg msg+"-Año mal \n";
        }
    
// Valido el Mes
        
if (isNaN(Mes) || parseFloat(Mes)<|| parseFloat(Mes)>12){
        
msg msg+"-Mes mal \n";
        }
    
// Valido el Dia
        
if (isNaN(Dia) || parseInt(Dia10)<|| parseInt(Dia10)>31){
        
msg msg+"-Dia mal \n";
        }
        if (
Mes==|| Mes==|| Mes==|| Mes==11 || Mes==2) {
            if (
Mes==&& Dia 28 || Dia>30) {
        
msg msg+"-Dia mal \n";
            }
//------------------------------------------------------------------------------

//Muestra errores si los hay
    
if (msg!="") { 
    
alert ("You have the following errors:\n"+msg)
    return 
false
    
}   
    
//TODO CORRECTO    
    
alert('Los campos introducidos son CORRECTOS.')
    return 
false //cambiar por return true para ejecutar la accion del formulario
}
</script>
</head>

<body>
<p><b>VALIDACION DE FORMULARIO</b></p>
<form name="formulario" action="mailto:[email protected]" onsubmit="return validacion(formulario)" >
<small>Nombre:</small><br><input type="text" name="username" size="14"><br><br>
<small>Fecha (dd/mm/aaaa):</small><br><input type="text" name="fecha" size="14"><br><br>
<small>E-mail:</small><br><input type="text" name="email" size="14"><br><br>
<input type="submit" value="Validar" name="boton_envio"> 
<input type="reset" value="Borrar" name="boton_borrar"></form>
</body>
</html> 
gracias de antemano
  #2 (permalink)  
Antiguo 21/01/2008, 13:11
 
Fecha de Ingreso: enero-2008
Mensajes: 203
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Validar fecha de formulario no funciona

mmmmm.... yo, cada quien lo hace a su modo, tengo un input text tipo readonly y al lado una imagen de calendario en el cual el usuario selecciona la fecha y esta es copiada al input text, asi solamente necesito validar q no esta vacio, no te sirve?
  #3 (permalink)  
Antiguo 21/01/2008, 13:45
NiB
 
Fecha de Ingreso: octubre-2005
Mensajes: 59
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: Validar fecha de formulario no funciona

Hola,

Es una opción interesante que he visto en los faqs del foro pero el problema es que donde irá ubicado el formulario no hay mucho espacio, a ver si pudierais darme otra solución.

gracias
  #4 (permalink)  
Antiguo 21/01/2008, 14:09
 
Fecha de Ingreso: enero-2008
Mensajes: 203
Antigüedad: 16 años, 3 meses
Puntos: 1
Re: Validar fecha de formulario no funciona

pues no ocupa mucho espacio te comento, te voy a explicar tienes el text box, y al lado es una imagen chica, al darle click te despliegue un calendario, pero pequeño, y seleccionas, no es muy complicado, cualquier cosa avisame para mandarte el codigo puesto q son varios archivos adjuntos
  #5 (permalink)  
Antiguo 22/01/2008, 13:07
NiB
 
Fecha de Ingreso: octubre-2005
Mensajes: 59
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: Validar fecha de formulario no funciona

Hola,

He encontrado una nueva expresión para usar con la validación de la fecha, incluso valida los años bisiestos y funciona a la perfección.

gracias de todos modos.

un saludo

Código PHP:
<html>
<
head>
<
script language="javascript" type="text/javascript">

function 
validacion(formulario) {

    var 
msg='';
          
    
//comprueba campo de username
    
var er_username = /^([a-z]|[A-Z]|á|é|í|ó|ú|ñ|ü|s|.|-)+$/
    if(!
er_username.test(formulario.username.value)) { 
    
msg="-Bad username \n";
    }       
    
//comprueba campo de email
    
var er_email = /^(.+@.+..+)$/
    if(!
er_email.test(formulario.email.value)) { 
    
msg msg+"-Bad email \n";
    }       
    
//------------------------------------------------------------------------------
//comprueba campo de fecha
    
var er_fecha = /^(((0[1-9]|[12][0-9]|3[01])([/])(0[13578]|10|12)([/])(d{4}))|(([0][1-9]|[12][0-9]|30)([/])(0[469]|11)([/])(d{4}))|((0[1-9]|1[0-9]|2[0-8])([/])(02)([/])(d{4}))|((29)(.|-|/)(02)([/])([02468][048]00))|((29)([/])(02)([/])([13579][26]00))|((29)([/])(02)([/])([0-9][0-9][0][48]))|((29)([/])(02)([/])([0-9][0-9][2468][048]))|((29)([/])(02)([/])([0-9][0-9][13579][26])))/
    if(!
er_irc.test(formulario.fecha.value)) { 
    
msg msg+"-Bad date \n";
    }       
//------------------------------------------------------------------------------

//Muestra errores si los hay
    
if (msg!="") { 
    
alert ("You have the following errors:\n"+msg)
    return 
false
    
}   
    
//TODO CORRECTO    
    
alert('Los campos introducidos son CORRECTOS.')
    return 
false //cambiar por return true para ejecutar la accion del formulario
}
</script>
</head>

<body>
<p><b>VALIDACION DE FORMULARIO</b></p>
<form name="formulario" action="mailto:[email protected]" onsubmit="return validacion(formulario)" >
<small>Nombre:</small><br><input type="text" name="username" size="14"><br><br>
<small>Fecha (dd/mm/aaaa):</small><br><input type="text" name="fecha" size="14"><br><br>
<small>E-mail:</small><br><input type="text" name="email" size="14"><br><br>
<input type="submit" value="Validar" name="boton_envio"> 
<input type="reset" value="Borrar" name="boton_borrar"></form>
</body>
</html> 
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 13:07.