Foros del Web » Programando para Internet » Javascript »

Hola amigos. no encuentro cual es el problema en mi validador de formulario

Estas en el tema de Hola amigos. no encuentro cual es el problema en mi validador de formulario en el foro de Javascript en Foros del Web. Hola amigos, verán me estoy iniciando en javascript. y he estado estudiando algunas cosillas "solo teoricas" el día de hoy quise comenzar a practicar los ...
  #1 (permalink)  
Antiguo 17/05/2010, 20:36
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 2 meses
Puntos: 188
Hola amigos. no encuentro cual es el problema en mi validador de formulario

Hola amigos, verán me estoy iniciando en javascript. y he estado estudiando algunas cosillas "solo teoricas" el día de hoy quise comenzar a practicar los que ya se hacer pero mi codigo no me funciona.

Es muy sencillo, alguno de ustedes puee ayudarme.
Gracias.

Código Javascript:
Ver original
  1. <script language="javascript" type="text/javascript">
  2.   function Formvalidar(){
  3.     var criterio = document.getElementsById('criterio').value,
  4.         caracters = /^[\w\,.!¿?'áéíóúÁÉÍÓÚñÑ\-@\s]+$/i;
  5.    
  6.     //Actualizamos los errores
  7.     function updateTips(t){
  8.       document.getElementById('validateTips').innerHTML = t;   
  9.     }
  10.    
  11.     //valido campos vacios
  12.     function checkEmpty(a,b) {
  13.         if(a.length <= 0) { updateTips("Debes escribir un "+b+"."); return false; } else { return true; }
  14.        
  15.     }
  16.    
  17.     //valido longitudes
  18.     function checkLength(a,b,min,max){
  19.         if( a.length > max || a.length < min) {
  20.         updateTips("Tu "+b+" debe contener entre "+min+" y "+max+" caracteres"); return false; } else { return true; }
  21.     }
  22.    
  23.     //valido caracteres alfanumericos
  24.     function checkCaracters(a,b){
  25.        if(  !(caracters.test(a)) ) { updateTips("No se permiten caracteres especiales en "+b+"."); return false;} else{ return true; }
  26.        
  27.     }
  28.    
  29.    
  30.    
  31.     var bValid = true;
  32.    
  33.         bValid = bValid && checkEmpty(criterio,"Criterio de búsqueda");
  34.         bValid = bValid && checkLength(criterio,"Criterio de búsqueda",3,20);
  35.         bValid = bValid && checkCaracters(criterio,"Criterio de búsqueda");
  36.        
  37.          if(bValid) { updateTips("Todo esta correcto ya se puede buscar"); } else { updateTips("Todavia existen algunos errores"); }
  38.      
  39.   }
  40. </script>


Código HTML:
Ver original
  1. <div id="validateTips"></div>
  2.  
  3. <form action="" method="post">
  4.   <input type="text" name="criterio" id="criterio" onkeyup="Formvalidar()"/>
  5.   <input type="submit" name="" value="Buscar" />
  6. </form>


Lo que sucede es que no me imprime los mensajes, no esta ejecuntandose la funcion.

Muchas gracias amigos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #2 (permalink)  
Antiguo 17/05/2010, 20:39
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Hola amigos. no encuentro cual es el problema en mi validador de formulari

No puedes declarar/crear una función dentro de otra función (a menos que sea anónima, esto lo aprenderás después). Separa las funciones fuera de la función principal y lo que necesites cambiar, llamas las funciones dentro de la función principal.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 17/05/2010, 21:46
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 2 meses
Puntos: 188
Respuesta: Hola amigos. no encuentro cual es el problema en mi validador de formulari

Hola amigo, no había leido su mensaje y he estado todo el tiempo intentando hacerlo funcionar y ya lo logre había cometido un error de escritura, aunque sigo incluyendo funcion dentro de otra funcion

Será que las funciones son anónimas ?

Bueno mí código

actual es

Código PHP:
Ver original
  1. <script language="javascript" type="text/javascript">
  2.   function vForm(){
  3.     var criterio = document.getElementById('criterio').value,
  4.         caracters = /^[\w\,.!&#191;?'áéíóúÁÉÍÓÚñÑ\-@\s]+$/i;
  5.        
  6.         //Actualizadomos los errores
  7.         function updateTips(t) {
  8.             document.getElementById('validateTips').innerHTML = t;
  9.         }
  10.  
  11.            //Valido campos vacios
  12.            function checkEmpty(a,b){
  13.                if( a.length <= 0 ){ updateTips("Debes escribir un "+b+"."); return false; } else { return true; }  
  14.                
  15.            }
  16.            
  17.            //valido longitudes
  18.            function checkLength(a,b,min,max) {
  19.                 if ( a.length > max || a.length < min ) {
  20.                 updateTips("Tu "+b+" debe contener entre "+min+" y "+max+" caracteres."); return false; } else { return true; }
  21.  
  22.         }
  23.            
  24.            //Valido caracteres alfanumericos
  25.             function checkCaracters(a,b) {
  26.                 if ( !(caracters.test(a))) { updateTips("No se permiten los caracteres alfanumericos."); return false; } else { return true; }
  27.  
  28.         }
  29.            
  30.            
  31.             var bValid = true;
  32.            
  33.             bValid = bValid && checkEmpty(criterio,"Criterio de busqueda");
  34.             bValid = bValid && checkLength(criterio,"Criterio de busqueda",3,20);
  35.             bValid = bValid && checkCaracters(criterio,"Criterio de búsqueda");
  36.            
  37.                 if(bValid){ updateTips("Todo esta correcto!."); }
  38.                
  39. }
  40. </script>

y mi error fue en la linea 8 donde escribi document.getElementById("validateTips").innerHTML donde accidentalmente escribí getElementsById
con la s entre Element By

Eso fue el error.
Muchas gracias.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #4 (permalink)  
Antiguo 18/05/2010, 07:30
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Hola amigos. no encuentro cual es el problema en mi validador de formulari

Disculpa con javascript sí es posible usar funciones anidadas (es que no me fije que estaba contestando en el foro de javascript, pensé que estaba en el foro de PHP).
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 18/05/2010, 08:34
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 2 meses
Puntos: 188
Respuesta: Hola amigos. no encuentro cual es el problema en mi validador de formulari

jej gracias amigo.

Si en PHP si he notado que no se puede meter una function dentro de otra function. Te agradezco mucho por tu ayuda.

Te mando un saludo.
Que tengas buen comienzo de semana.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.

Etiquetas: encuentro, hola, formulario
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 09:15.