Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/07/2010, 03:57
Avatar de _cronos2
_cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 8 meses
Puntos: 310
Respuesta: Validar formulario con Javascript

Hola, creo que tienes varios errores en el código, vamos a depurarlo.
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function validar(formulario) {
  3.     if (formulario.nombre.value.length < 4) {
  4.     alert("Escriba por lo menos 4 caracteres en el campo 'Nombre'.");
  5.         //aquí debes usar comillas simples
  6.         //para no dar a entender que finalizas la cadena
  7.     formulario.nombre.focus();
  8.     return (false);
  9.     }
  10.     var aceptados = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚabcdefghijklmnñopqrstuvwxyzáéíóú ";
  11.     var cadena = formulario.cadena.value;
  12.     var Validado = true;
  13.     for (i = 0; i < cadena.length; i++) {
  14.     ch = cadena.charAt(i);
  15.     for (j = 0; j < aceptados.length; j++){
  16.     if (ch == aceptados.charAt(j))
  17.     break;
  18.     if (j == aceptados.length) {
  19.     Validado = false;
  20.     break;
  21.     }
  22.         }
  23.     }
  24.     if (!Validado) {
  25.     alert("Escriba sólo letras en el campo 'cadena'.");
  26.     formulario.cadena.focus();
  27.     return (false);
  28.     }
  29.         //a partir de aquí tienes mal todos los nombres
  30.         //de las variables, porque ya han sido declaradas anteriormente.
  31.         //por tanto debes buscar otro, o ponerles el mismo nombre
  32.         //y una barra baja para que se diferencien
  33.         //además de eso no hay nada mal, pero en vez
  34.         //de ir carácter por carácter es más fácil usar la función isNaN()
  35.     var aceptados = "0123456789";
  36.     var cadena = formulario.tel.value;
  37.     var Validado = true;
  38.     var decPoints = 0;
  39.     var allNum = "";
  40.     for (i = 0; i < cadena.length; i++) {
  41.         ch = cadena.charAt(i);
  42.         for (j = 0; j < aceptados.length; j++)
  43.         if (ch == aceptados.charAt(j))
  44.         break;
  45.         if (j == aceptados.length) {
  46.         Validado = false;
  47.         break;
  48.         }
  49.         allNum += ch;
  50.         }
  51.         if (!Validado) {
  52.         alert("Escriba sólo dígitos en el campo 'Telefono'.");
  53.         formulario.tel.focus();
  54.         return (false);
  55.         }
  56.     if ((formulario.mail.value.indexOf ('@', 0) == -1)||(formulario.correo.value.length < 5)) {
  57.         alert("Escriba una dirección de correo válida en el campo "Mail".");
  58.         return (false);
  59.         }
  60.         return (true);
  61.         }
  62.        //en teoría este último if valida el mail, pero si
  63.        //te das cuenta, si yo pongo @aaaa me lo valida,
  64.        //por tanto debes usar una expresión regular.
  65.        //busca un poco por internet
  66. </script>

También me fijé en que usas CSS pero sin embargo pones 400 &nbsp; para que te quede todo alineado, cuando es más fácil usar margin-left y margin-right.
Saludos (: