Ver Mensaje Individual
  #12 (permalink)  
Antiguo 02/06/2010, 07:10
Avatar de _cronos
_cronos
 
Fecha de Ingreso: abril-2010
Mensajes: 135
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Validar formulario

Bueno en el código JS tienes varios errores, voy a copiar el que tienes e ir comentándolo.
Código Javascript:
Ver original
  1. function valida_envia(frm){
  2.      nombre = frm.nombre.value.length ;//aquí en casi todos coges el campo su value y su length
  3.      apellido1 = frm.apellido1.value.length ; //pero es mejor coger sólo el campo porque sino
  4.      apellido2 = frm.apellido2.value.length ; // en el focus() tienes que poner todo el nombre o sino no funciona
  5.      ano = frm.ano;//aquí si está bien
  6.      nif = frm.nif;// además es mejor poner var delante de nif, o direccion, etc...
  7.      direccion = frm.direccion.value.length;
  8.      numero = frm.numero.value.length;
  9.      cpostal = frm.cpostal.value.length;
  10.      poblacion = frm.poblacion.value.length;
  11.      email = frm.email.value;
  12.      telefono = frm.telefono.value.length;
  13.      password = frm.password.value;
  14.      rpassword = frm.rpassword.value;
  15.      number = nif.substr(0,nif.length-1);
  16.      let = nif.substr(nif.length-1,1);
  17.      number = number % 23;
  18.      letra='TRWAGMYFPDXBNJZSQVHLCKET';
  19.      letra=letra.substring(numero,numero+1);
  20.           //valido el nombre
  21.           if ((nombre == 0 ) || (apellido1 == 0 ) || (apellido2 == 0 ) ) {
  22.                  alert("Tiene que escribir su nombre y dos apellidos");
  23.                  nombre.focus() // te falta ';' y ademas no creo que haga focus porque te estás refiriendo al length del campo, no al campo en sí
  24.                  return 0;
  25.           }
  26.           if (ano <= 1910 && ano >= 1992 )  { // a mí no me gustaría que me tacharan de viejo pero supongo que serán exigencias xD
  27.                   alert("Eres muy mayor o muy joven para esto");// además tendrías que validar si es un número (isNaN() o regExp)
  28.                   ano.focus()// y no es && sino || porque el año no puede ser menor que 1910 y mayor que 1992
  29.                   return 0;
  30.          }
  31.          if (letra!=let) {
  32.                      alert('Dni erroneo');
  33.                      nif.focus()
  34.                      return 0;
  35.          }
  36.          if ((direccion == 0 ) || (numero == 0 ) ) {
  37.                       alert("Por favor rellene dirección y numero");
  38.                      direccion.focus()
  39.                      return 0;
  40.          }
  41.          if (cpostal < 5 )  {
  42.                       alert("El c.Postal debe de ser de 5 dígitos");
  43.                       cpostal.focus()
  44.                       return 0;
  45.           }
  46.           if (poblacion == 0 ) {
  47.                       alert("Debes de rellenar el campo población");
  48.                       poblacion.focus()
  49.                       return 0;
  50.           }
  51.           if (/^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,3})+$/.test(email)) {
  52.                      alert("Debes de rellenar bien el campo Email");
  53.                      email.focus()
  54.                      return 0;
  55.           }
  56.           if (telefono < 9 )  {
  57.                      alert("Introduce un teléfono correcto(9 dígitos)");
  58.                      telefono.focus()
  59.                      return 0;
  60.            }
  61.            if (password.length < 4 )  {
  62.                      alert("la contraseña debe de ser entre 4 y 8 caracteres");// aquí te falta poner '|| password.length>8'
  63.                      password.focus()
  64.                      return 0;
  65.            }
  66.            if (rpassword != password) {
  67.                     alert("Las contraseñas no coinciden, revíselo");
  68.                     rpassword.focus()
  69.                     return 0;
  70.            }
  71.            else{
  72.                    return true;
  73.                    alert("Muchas gracias por enviar el formulario");
  74.            }
  75. }

Además no sé si poniendo return 0 es lo mismo que return false.
Saludos (:
__________________
'Dadme un punto de apoyo y moveré el mundo' - Arquímedes
Alianza DIOSES [-GOD-] Ikariam - Mundo Ny (s13)