Foros del Web » Programando para Internet » Javascript »

Alguien sabe porque no me valida?

Estas en el tema de Alguien sabe porque no me valida? en el foro de Javascript en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original < form action = "registrar.php" method = "post" onsubmit = "return validacion();" >             ...
  #1 (permalink)  
Antiguo 02/05/2013, 01:20
Avatar de xXn
xXn
 
Fecha de Ingreso: abril-2013
Ubicación: Buenos Aires
Mensajes: 41
Antigüedad: 11 años
Puntos: 2
Alguien sabe porque no me valida?

Código HTML:
Ver original
  1. <form action="registrar.php" method="post" onsubmit = "return validacion();">  
  2.             <table class="paneles">
  3.                 <tr>
  4.                     <td>
  5.                     .Usuario<br />
  6.                     <input type="text" name="usr_login" id="usr_login">
  7.                     </td>
  8.                 </tr>
  9.                 <tr>
  10.                     <td>
  11.                     .Contraseña<br />
  12.                     <input type="password" name="usr_pass" id="usr_pass">
  13.                     </td>
  14.                 </tr>
  15.                 <tr>
  16.                     <td>
  17.                     .Repita la contraseña<br />
  18.                     <input type="password" name="usr_pass2" id="usr_pass2">
  19.                     </td>
  20.                 </tr>
  21.                 <tr>
  22.                     <td>
  23.                     .Email<br />
  24.                     <input type="text" name="usr_email" id="usr_email">
  25.                     </td>
  26.                 </tr>
  27.                 <tr>
  28.                     <td>
  29.                     .Nombre<br />
  30.                     <input type="text" name="usr_nombre" id="usr_nombre">
  31.                     </td>
  32.                 </tr>
  33.                 <tr>
  34.                     <td>
  35.                         <input class="botones" type="submit" value="Registrarse">
  36.                     </td>
  37.                 </tr>
  38.             </table>
  39.         </form>
  40.  
  41. <script type="text/javascript" charset="utf-8" src="validacion.js"></script>

Código Javascript:
Ver original
  1. function validacion(){
  2.     var usuario = document.getElementById("usr_login").value;
  3.     var pass    = document.getElementById("usr_pass").value;
  4.     var pass2   = document.getElementById("usr_pass2").value;
  5.     var email   = document.getElementById("usr_email").value;
  6.     var nombre  = document.getElementById("usr_nombre").value;
  7.    
  8.     if( usuario == null || usuario.length == 0 /^\s+$/.test(nombre) ) {    
  9.         alert("Complete el capo usuario.");
  10.         return false;
  11.     }
  12.     else if( nombre == null || nombre.length == 0 /^\s+$/.test(nombre)  ) {    
  13.         alert("Complete el capo nombre.");
  14.         return false;
  15.     }
  16.     else if(pass == null || pass.length == 0 || pass2 == null || pass2.length == 0 || pass != pass2){
  17.         alert("Las passwords no coinciden");
  18.     }
  19.     else if( email == null || !(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.([a-zA-Z]{2,4})+$/.test(email)) ) {
  20.         alert("Complete el con una direccion de correo electronico.");
  21.         return false;
  22.     }
  23. }
  #2 (permalink)  
Antiguo 02/05/2013, 04:10
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 8 meses
Puntos: 297
Respuesta: Alguien sabe porque no me valida?

¿Te da alguna alerta la consola de JavaScript?

De todas formas creo que tienes mal la sentencia if, ya que no separas length de la expresión regular con algún operador.

De todos modos, tampoco paras el proceso por defecto al hacer submit, que lo tienes que hacer con preventDefault() en vez de devolver un return.
__________________
Freelance Developer — www.rubenmartin.me PHP, SQL, Wordpress, Prestashop, Codeigniter, Laravel
RegaloConsolas — www.regaloconsolas.com Sorteo juegos, consolas y accesorios
  #3 (permalink)  
Antiguo 02/05/2013, 17:08
Avatar de xXn
xXn
 
Fecha de Ingreso: abril-2013
Ubicación: Buenos Aires
Mensajes: 41
Antigüedad: 11 años
Puntos: 2
Respuesta: Alguien sabe porque no me valida?

Directamente me registra aunque deje todo en blanco. Como que me devuelve un true y nunca estoy poniendo un return true en la validacion. O la otra es que ni siquiera este yendo a validacion.

vos me decis que lo ponga asi?

Código Javascript:
Ver original
  1. function validacion(){
  2.     var usuario = document.getElementById("usr_login").value;
  3.     var pass    = document.getElementById("usr_pass").value;
  4.     var pass2   = document.getElementById("usr_pass2").value;
  5.     var email   = document.getElementById("usr_email").value;
  6.     var nombre  = document.getElementById("usr_nombre").value;
  7.    
  8.     if( usuario == null || usuario.length == 0 || /^\s+$/.test(nombre) ) {    
  9.         alert("Complete el capo usuario.");
  10.         return false;
  11.     }
  12.     else if( nombre == null || nombre.length == 0 || /^\s+$/.test(nombre)  ) {    
  13.         alert("Complete el capo nombre.");
  14.         return false;
  15.     }
  16.     else if(pass == null || pass.length == 0 || pass2 == null || pass2.length == 0 || pass != pass2){
  17.         alert("Las passwords no coinciden");
  18.     }
  19.     else if( email == null || !(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.([a-zA-Z]{2,4})+$/.test(email)) ) {
  20.         alert("Complete el con una direccion de correo electronico.");
  21.         return false;
  22.     }
  23. }


Lo de preventDefault() no lo entendi.
  #4 (permalink)  
Antiguo 03/05/2013, 04:50
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 12 años, 8 meses
Puntos: 297
Respuesta: Alguien sabe porque no me valida?

El preventDefault() como su nombre indica es para evitar que haga el evento por defecto, en tu caso enviar el formulario, por eso se te registran, porque primer hace el submit y después tu javascript.

PD: Es muy bueno que pongas también una validación en el lado del servidor.
__________________
Freelance Developer — www.rubenmartin.me PHP, SQL, Wordpress, Prestashop, Codeigniter, Laravel
RegaloConsolas — www.regaloconsolas.com Sorteo juegos, consolas y accesorios

Etiquetas: input, js, php
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 08:16.