Foros del Web » Programando para Internet » Javascript »

Validador error

Estas en el tema de Validador error en el foro de Javascript en Foros del Web. Hola que tal les dejo un script para validar un formulario el problema que tengo es que cuando lleno todos los datos correctamente deberia de ...
  #1 (permalink)  
Antiguo 29/04/2011, 12:25
 
Fecha de Ingreso: abril-2011
Ubicación: Baja California sur
Mensajes: 39
Antigüedad: 13 años
Puntos: 0
Mensaje Validador error

Hola que tal les dejo un script para validar un formulario el problema que tengo es que cuando lleno todos los datos correctamente deberia de mandar a php/validar_registro.php pero en lugar de eso me da el error Algunos datos Tienen Errores que hice con la alerta, como puedo solucionar que cuando este todo lleno me lleve al validar_registro.php (el problema creo yo que esta en la función validar pero no estoy seguro)


Código PHP:
Ver original
  1. <form action="php/validar_registro.php" method="post" onSubmit="return validar();">
  2. <table width="300" border="0">
  3.   <tr>
  4.     <td style="font-size:17px">Nombre</td>
  5.     <td width="282" height="50"><input type="text" id="nombre" name="nombre" size="35" onFocus="entroEnFoco(this)" onBlur="salioDeFoco(this); revisaObligatorio(this); revisarLongitud(this, 3)" /></td>
  6.   </tr>
  7.   <tr>
  8.     <td style="font-size:17px">Apellidos</td>
  9.     <td width="282" height="50"><input type="text" id="apellido" name="apellido" size="35" onFocus="entroEnFoco(this)"  onBlur="salioDeFoco(this); revisaObligatorio(this); revisarLongitud(this, 8)"/></td>
  10.   </tr>
  11.   <tr>
  12.     <td style="font-size:17px">Password</td>
  13.     <td width="282" height="50"><input  type="password" id="pass1" name="pass1" size="35"onFocus="entroEnFoco(this)"  onBlur="salioDeFoco(this); revisaObligatorio(this)"/></td>
  14.   </tr>
  15.   <tr>
  16.     <td style="font-size:17px">Repita Password</td>
  17.     <td width="282" height="50"><input type="password" id="pass2" name="pass2" size="35" onFocus="entroEnFoco(this)"  onBlur="salioDeFoco(this); revisaObligatorio(this)"/></td>
  18.   </tr>
  19.   <tr>
  20.     <td style="font-size:17px">Correo</td>
  21.     <td width="282" height="50"><input type="email" id="correo" name="correo" size="35" onFocus="entroEnFoco(this)"  onBlur="salioDeFoco(this); revisaObligatorio(this); revisarEmail(this)"/></td>
  22.   </tr>
  23.   <tr>
  24.     <td style="font-size:17px">Fecha</td>
  25.     <td width="282" height="50"><input type="date" id="fecha" name="fecha" size="10" onFocus="entroEnFoco(this)"  onBlur="salioDeFoco(this);"/></td>
  26.   </tr>
  27. </table>
  28.  
  29. <input  name="enviar" id="envio" type="submit" value="Enviar">
  30. </form>



Código Javascript:
Ver original
  1. function entroEnFoco(elemento){
  2.     elemento.className='enfoco';
  3.     var elemento = document.getElementById(nombre);
  4.    
  5. }
  6.  
  7. function salioDeFoco(elemento){
  8.     elemento.className='';
  9.    
  10. }
  11.  
  12. function revisaObligatorio(elemento) {
  13.     if(elemento.value==""){
  14.         elemento.className='error';
  15.     } else {
  16.         elemento.className='';
  17.     }
  18. }
  19.  
  20. function revisarLongitud(elemento, minimoDeseado) {
  21.     if(elemento.value!='') {
  22.     var dato = elemento.value;
  23.     if (dato.length<minimoDeseado) {
  24.         elemento.className='error'
  25.         }  
  26.     }
  27. }
  28.  
  29.  
  30. function revisarEmail(elemento) {
  31.     if (elemento.value!="") {
  32.         var dato = elemento.value;
  33.         var expresion = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
  34.         if (!expresion.test(dato)) {
  35.           elemento.className='error';
  36.       } else {
  37.           elemento.className='';
  38.       }
  39.     }
  40. }
  41.  
  42.  
  43. function validar(){
  44.     var estaTodoOk = true;
  45.     if (document.getElementById("nombre").value.length<2){
  46.         estaTodoOk = false;
  47.     }
  48.     if (document.getElementById("apellido").value.length<8){
  49.         estaTodoOk = false;
  50.     }
  51.     var expresion = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
  52.     if (!expresion.test(document.getElementById("correo"))) {
  53.         estaTodoOk = false;
  54.     }
  55.    
  56.     if (!estaTodoOk) {
  57.         alert("Algunos datos Tienen Errores")
  58.     }
  59.    
  60.     return estaTodoOk;
  61.    
  62. }

Última edición por djmkmix; 29/04/2011 a las 12:30
  #2 (permalink)  
Antiguo 29/04/2011, 13:35
 
Fecha de Ingreso: junio-2008
Ubicación: Capital Federal xD
Mensajes: 1.208
Antigüedad: 15 años, 10 meses
Puntos: 35
Respuesta: Validador error

La expresión regular es una string, se define como tal mediante el uso de comillas.
Código Javascript:
Ver original
  1. var expresion = '/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/';
__________________
I am Doyle please insert code.
  #3 (permalink)  
Antiguo 29/04/2011, 14:20
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Validador error

aparte de lo que te indican, otro error lo tienes es que este elemento no está definido
Cita:
var elemento = document.getElementById(nombre);
  #4 (permalink)  
Antiguo 29/04/2011, 14:41
 
Fecha de Ingreso: abril-2011
Ubicación: Baja California sur
Mensajes: 39
Antigüedad: 13 años
Puntos: 0
Respuesta: Validador error

Muchisimas gracias por ayudarme enserio, pero esoso errores no me dan problema,lo que queria es que si estaTodoOk sea true pueda mandar mi validacion, eso es lo que necesito, pero aun así gracias por sus comentarios
  #5 (permalink)  
Antiguo 29/04/2011, 14:47
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Validador error

pero, primero corrige los errores y todo llegará. aquí tienes otro error
Cita:
expresion.test(document.getElementById("correo").value
  #6 (permalink)  
Antiguo 29/04/2011, 15:15
 
Fecha de Ingreso: abril-2011
Ubicación: Baja California sur
Mensajes: 39
Antigüedad: 13 años
Puntos: 0
Respuesta: Validador error

Listo Gracias IsaBel lo arregle con un else y gracias a tu value dejo el codigo completo por si alguien necesita el formulario



Código PHP:
Ver original
  1. <form onSubmit="validar()" action="php/validar_registro.php" method="post">
  2. <table width="300" border="0">
  3.   <tr>
  4.     <td style="font-size:17px">Nombre</td>
  5.     <td width="282" height="50"><input type="text" id="nombre" name="nombre" size="35" onFocus="entroEnFoco(this)" onBlur="salioDeFoco(this); revisaObligatorio(this); revisarLongitud(this, 3)" /></td>
  6.   </tr>
  7.   <tr>
  8.     <td style="font-size:17px">Apellidos</td>
  9.     <td width="282" height="50"><input type="text" id="apellido" name="apellido" size="35" onFocus="entroEnFoco(this)"  onBlur="salioDeFoco(this); revisaObligatorio(this); revisarLongitud(this, 8)"/></td>
  10.   </tr>
  11.   <tr>
  12.     <td style="font-size:17px">Password</td>
  13.     <td width="282" height="50"><input  type="password" id="pass1" name="pass1" size="35"onFocus="entroEnFoco(this)"  onBlur="salioDeFoco(this); revisaObligatorio(this)"/></td>
  14.   </tr>
  15.   <tr>
  16.     <td style="font-size:17px">Repita Password</td>
  17.     <td width="282" height="50"><input type="password" id="pass2" name="pass2" size="35" onFocus="entroEnFoco(this)"  onBlur="salioDeFoco(this); revisaObligatorio(this)"/></td>
  18.   </tr>
  19.   <tr>
  20.     <td style="font-size:17px">Correo</td>
  21.     <td width="282" height="50"><input type="email" id="correo" name="correo" size="35" onFocus="entroEnFoco(this)"  onBlur="salioDeFoco(this); revisaObligatorio(this); revisarEmail(this)"/></td>
  22.   </tr>
  23.   <tr>
  24.     <td style="font-size:17px">Fecha</td>
  25.     <td width="282" height="50"><select name="dia" id="dia">
  26.     <script type="text/javascript">crearOption(1, 31)</script>
  27.     </select>
  28.    
  29.    
  30.     <select name="mes" id="mes">
  31.      <option>Enero</option>
  32.      <option>Febreo</option>
  33.      <option>Marzo</option>
  34.      <option>Abril</option>
  35.      <option>Mayo</option>
  36.      <option>Junio</option>
  37.      <option>Julio</option>
  38.      <option>Agosto</option>
  39.      <option>Septiembre</option>
  40.      <option>Octubre</option>
  41.      <option>Noviembre</option>
  42.      <option>Diciembre</option>
  43.     </select>
  44.    
  45.    
  46.     <select name="anio">
  47.      <script type="text/javascript">crearOption(1940, 1994, 1980)</script>
  48.     </select></td>
  49.   </tr>
  50. </table>
  51.  
  52. <input  name="enviar" id="envio" type="submit" value="Enviar">
  53. </form>




Código Javascript:
Ver original
  1. function entroEnFoco(elemento){
  2.     elemento.className='enfoco';
  3.     var elemento = document.getElementById(nombre);
  4.    
  5. }
  6.  
  7. function salioDeFoco(elemento){
  8.     elemento.className='';
  9.    
  10. }
  11.  
  12. function revisaObligatorio(elemento) {
  13.     if(elemento.value==""){
  14.         elemento.className='error';
  15.     } else {
  16.         elemento.className='';
  17.     }
  18. }
  19.  
  20. function revisarLongitud(elemento, minimoDeseado) {
  21.     if(elemento.value!='') {
  22.     var dato = elemento.value;
  23.     if (dato.length<minimoDeseado) {
  24.         elemento.className='error'
  25.         }  
  26.     }
  27. }
  28.  
  29.  
  30. function revisarEmail(elemento) {
  31.     if (elemento.value!="") {
  32.         var dato = elemento.value;
  33.         var expresion = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
  34.         if (!expresion.test(dato)) {
  35.           elemento.className='error';
  36.       } else {
  37.           elemento.className='';
  38.       }
  39.     }
  40. }
  41.  
  42.  
  43. function validar() {
  44.     var estaTodoOk = true;
  45.     if (document.getElementById("nombre").value.length<2){
  46.         estaTodoOk = false;
  47.     }
  48.     if (document.getElementById("apellido").value.length<8){
  49.         estaTodoOk = false;
  50.     }
  51.     var expresion = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
  52.     if (!expresion.test(document.getElementById("correo").value)) {
  53.         estaTodoOk = false;
  54.     }
  55.    
  56.     if (!estaTodoOk) {
  57.         alert("Algunos datos Tienen Errores")
  58.     }
  59.    
  60.     if (estaTodoOk == true) {
  61.         alert("Archivos Mandados")
  62.         document.forms.submit("php/validar_registro.php")
  63.     } else {
  64.  
  65.     return estaTodoOk;
  66.     }
  67.    
  68. }
  69.  
  70. function crearOption(desde, hasta, selected) {
  71.  
  72. for (var i=0; i<(hasta-desde+1); i++) {
  73.     if (selected!=undefined) {
  74.         if (selected == (i+desde)) {
  75.             document.write("<option selected='selected'>" + parseInt(i+desde) + "</option>");
  76.         } else {
  77.         document.write("<option>" + parseInt(i+desde) + "</option>");
  78.         }
  79.     } else {
  80.         document.write("<option>" + parseInt(i+desde) + "</option>")
  81.        
  82.     }
  83.        
  84.   }
  85. }
  #7 (permalink)  
Antiguo 29/04/2011, 15:19
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Validador error

esto continua estando indefinido
Cita:
var elemento = document.getElementById(nombre);
a no ser que "nombre" sea una variable
  #8 (permalink)  
Antiguo 29/04/2011, 15:21
 
Fecha de Ingreso: abril-2011
Ubicación: Baja California sur
Mensajes: 39
Antigüedad: 13 años
Puntos: 0
Respuesta: Validador error

si lo convierto en variable, la info del input y le digo que si es menor de 2 me de el error
  #9 (permalink)  
Antiguo 29/04/2011, 15:33
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: Validador error

perdona, pero no lo he entendido. esto, supuestamente, hace referencia al control "nombre",
document.getElementById(nombre); pero si no le añades comillas, js lo interpreta como variable. has de quedar así document.getElementById('nombre').
una recomendación, que te hará todo mas sencillo, usa algunas de las consolas de errores que existen

Etiquetas: validador
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 05:47.