Foros del Web » Programando para Internet » Javascript »

Modificando script de validacion de campos

Estas en el tema de Modificando script de validacion de campos en el foro de Javascript en Foros del Web. Hola a todos ¿Donde meto esto? Código PHP:      if (/[ 01 - 31 ]{ 1 }/[ 01 - 12 ]{ 1 }/[ 1911 - ...
  #1 (permalink)  
Antiguo 01/03/2006, 08:37
 
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 78
Antigüedad: 18 años, 7 meses
Puntos: 0
Modificando script de validacion de campos

Hola a todos

¿Donde meto esto?
Código PHP:
  
 
if (/[01-31]{1}/[01-12]{1}/[1911-1987]{1}/.test(fecha)); 
Para que me valide el campo "fecha" en formulario y me salga el mensaje de error mensaje[3]="fecha no correcta"; .



Código PHP:
<?php BEGIN__VBULLETIN__CODE__SNIPPET <html>   
<
head>   
<
style>   
formtd{font:normal 10px/10px verdana;}   
input{font:normal 10px/10px verdana;border:solid 1px black}   
</
style>   
    <
title>Prueba</title>   
    <
script>   
//Script original de KarlanKas para forosdelweb.com   
//Adaptado a firefox gracias a JavierB ;-)   

    
colorMal="#eeddee";   
    
colorBien="white";   
       
    
regla=new Array()   

    
regla[0]="valor.length<3";   
    
regla[1]="isNaN(valor) || valor<600000000";   
    
regla[2]="valor.lastIndexOf('@')!=valor.indexOf('@') || valor.indexOf('@')<2 || valor.lastIndexOf('.')<valor.length-4 || valor.lastIndexOf('.')>valor.length-3";

    
mensaje=new Array()   


    
mensaje[0]="Por favor, introduzca el nombre";   
    
mensaje[1]="El número de teléfono introducido no es válido";   
    
mensaje[2]="correo inválido";   
    
mensaje[3]="fecha no correcta";   
       
    function 
comprobar(){    
    
errores="";    
    
mensaje2="";   
    for(
a=0;a<regla.length;a++){    
    
valor=document.forms[0].elements[a].value;    
    if(eval(
regla[a])){   
    
mensaje2=(mensaje[a])?mensaje[a]:"Por favor, rellene el campo "+document.forms[0].elements[a].name;   
////////  

    
document.forms[0].elements[a].focus();  

////////  
    
errores+=mensaje2+"<br>";    
    
document.forms[0].elements[a].style.background=colorMal;}    
    else{
document.forms[0].elements[a].style.background=colorBien;}    
    }    
    
pepe=document.getElementById("herror");   
    
pepe.style.background=(errores!="")?colorMal:colorBien;    
    
pepe.style.border=(errores!="")?"solid 1px black":"none";    
    
pepe.innerHTML=errores;    

    return (
errores=="")   
    }    
        
       
    
</script>   
</head>   

<body>   
<form onsubmit="return comprobar()">   
<table><tr><td>nombre:</td><td><input type=text name=nombre size="20"></td><td style="font:normal 10px/15px verdana;padding:5px 5px 5px 5px;"rowspan=10 valign="top" id="herror"></td></tr>   
<tr><td>telefono:</td><td><input type=text name="telefono" size="20"></td></tr>   
<tr><td>e-mail:</td><td><input type=text name="email" size="20"></td></tr>   
<tr><td>fecha:</td><td><input type=text name="fecha" size="20"></td></tr>   
<tr><td colspan=2 align="center"><input type="submit" value="enviar"></td></tr></table>   

</form>   


</body>   
</html>

AYUDAAAA por favor

Con lo facil que parece cuando lo ves y lo dificil que es cuando no tienes ni idea.
  #2 (permalink)  
Antiguo 01/03/2006, 15:50
 
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 78
Antigüedad: 18 años, 7 meses
Puntos: 0
¿Hay algo mal?

Alguien que me diga algo!!! Por favor.
  #3 (permalink)  
Antiguo 02/03/2006, 04:52
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Holas

prueba así

Código:
    <script type="text/javascript">    
//Script original de KarlanKas para forosdelweb.com    
//Adaptado a firefox gracias a JavierB ;-)    

    colorMal="#eeddee";    
    colorBien="white";    
    pat = /[01-31]{1}\/[01-12]{1}\/[1911-1987]{1}/
    regla=new Array()    

    regla[0]="valor.length<3";    
    regla[1]="isNaN(valor) || valor<600000000";    
    regla[2]="valor.lastIndexOf('@')!=valor.indexOf('@') || valor.indexOf('@')<2 || valor.lastIndexOf('.')<valor.length-4 || valor.lastIndexOf('.')>valor.length-3"; 
	regla[3] = "!pat.test(valor)";

    mensaje=new Array()    


    mensaje[0]="Por favor, introduzca el nombre";    
    mensaje[1]="El número de teléfono introducido no es válido";    
    mensaje[2]="correo inválido";    
    mensaje[3]="fecha no correcta";    
        
    function comprobar(){     
    errores="";     
    mensaje2="";    
    for(a=0;a<regla.length;a++){     
    valor=document.forms[0].elements[a].value;     
    if(eval(regla[a])){    
    mensaje2=(mensaje[a])?mensaje[a]:"Por favor, rellene el campo "+document.forms[0].elements[a].name;    
////////   

    document.forms[0].elements[a].focus();   

////////   
    errores+=mensaje2+"<br>";     
    document.forms[0].elements[a].style.background=colorMal;}     
    else{document.forms[0].elements[a].style.background=colorBien;}     
    }     
    pepe=document.getElementById("herror");    
    pepe.style.background=(errores!="")?colorMal:colorBien;     
    pepe.style.border=(errores!="")?"solid 1px black":"none";     
    pepe.innerHTML=errores;     

    return (errores=="")    
    }     
         
        
    </script>
Un saludo
  #4 (permalink)  
Antiguo 02/03/2006, 06:12
 
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 78
Antigüedad: 18 años, 7 meses
Puntos: 0
En primer lugar te quiero dar las gracias tunait por contestar.

Lo he probado y ... no funciona.
Valida perfectamente todos los campos pero al llegar a la fecha aunque introduzca una fecha valida me dice siempre que "fecha no valida".

¿Alternativas? Soluciones?
Tiro el ordenador por un barranco (sin paracaidas), o yo.
  #5 (permalink)  
Antiguo 02/03/2006, 08:07
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Hum, probé con algo tipo 12/3/05 y me la validó (si no recuerdo mal)
De cualquier forma es una cuestión de la expresión regular. Dime qué tipo de formato quieres validar
  #6 (permalink)  
Antiguo 02/03/2006, 08:10
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Cita:
Iniciado por brainstorm
Tiro el ordenador por un barranco (sin paracaidas), o yo.
Un hachazo es mucho más efectivo

Igual, sale caro, es mejor amenazarle con un format c:\ a ver si pilla la indirecta
  #7 (permalink)  
Antiguo 02/03/2006, 11:20
 
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 78
Antigüedad: 18 años, 7 meses
Puntos: 0
Pregunta

Pues lo que busco es comprobar el siguiente formato
ejem. 13/10/1977 que de valido

ejem. 12/18/1999 que de no valido
ejem 1999/10/12 que de no valido
etc...

La informatica no es justa conmigo, asi que he subido el script a una pagina para que se vea en accion y con algo menos accion en el campo fecha.

http://www.anthelio.com/prueba-fecha.htm

Solo queda decir gracias tunait y a todos los foreros.

PD: He probado la fecha con la que a ti te valido y a mi nada de nada.

Un saludo.

Pd2: No se si tendra que ver y aunque se que se odia por aqui lo estoy probando de momento en el IE6.

Pd 3: Soy de valencia para usar un hacha, prefiero un buen masclet que ponga el ordenador en orbita.

Última edición por brainstorm; 02/03/2006 a las 14:07
  #8 (permalink)  
Antiguo 02/03/2006, 14:17
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Cita:
Iniciado por brainstorm
Pd 3: Soy de valencia para usar un hacha, prefiero un buen masclet que ponga el ordenador en orbita.
jajaja bueno, si lo haces con masclet saca fotos y nos las enseñas

Bueno, cambié la expresión regular para que el patrón se ajuste al formato de fecha que quieres.

Cambia esta línea
Código:
pat = /[01-31]{1}\/[01-12]{1}\/[1911-2050]{1}/
por esta otra
Código:
pat = /^(0[1-9]|[1-2][0-9]|3[0-1])\/(0[1-9]|1[0-2])\/19[0-9][0-9]|^(0[1-9]|[1-2][0-9]|3[0-1])\/(0[1-9]|1[0-2])\/20[0-9][0-9]/
Aceptará un rango de años entre 1900 y 2099

Yá me contás

Un saludo
  #9 (permalink)  
Antiguo 03/03/2006, 01:00
 
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 78
Antigüedad: 18 años, 7 meses
Puntos: 0
Ahora va perfectoooo!!!! Muchas gracias tunait.

Pd:
Cita:
jajaja bueno, si lo haces con masclet saca fotos y nos las enseñas
Ahora le quiero... ohhhh.

Un saludo a todos.
  #10 (permalink)  
Antiguo 03/03/2006, 01:14
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Muchas de nadas brainstorm

Un saludo
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 14:11.