Ver Mensaje Individual
  #10 (permalink)  
Antiguo 02/06/2010, 03:13
javier55
 
Fecha de Ingreso: septiembre-2003
Ubicación: Barcelona
Mensajes: 41
Antigüedad: 20 años, 8 meses
Puntos: 0
Respuesta: Validar formulario

No entiendo porque no funciona??
recojo todos los campos y luego los valido, en teoria no hay más ciencia no??
bueno os pongo el código, el tema está en que si solo dejo los primeros campos como en el ejemplo de adler funciona, pero si intento validar más campos pues nada, os dejo el código a ver donde meto la pata :P
js
Código Javascript:
Ver original
  1. function valida_envia(frm){
  2.      nombre = frm.nombre.value.length ;
  3.      apellido1 = frm.apellido1.value.length ;
  4.      apellido2 = frm.apellido2.value.length ;
  5.      ano = frm.ano;
  6.      nif = frm.nif;
  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()
  24.                  return 0;
  25.           }
  26.           if (ano <= 1910 && ano >= 1992 )  {
  27.                   alert("Eres muy mayor o muy joven para esto");
  28.                   ano.focus()
  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");
  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. }
html
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Documento sin título</title>
  5. <script src="fvalidacion1.js" type="text/javascript"></script>
  6. </head>
  7. <form name="formulario"  onsubmit="return valida_envia(this)" >
  8.     <h1>DATOS PERSONALES</h1>
  9.     <P>Rellenar las casillas siguientes con sus datos personales</P>
  10.     <form>
  11.     <table>
  12.         <tr>
  13.             <td>Nombre(*):</td>
  14.             <td><input type="text" name="nombre" size="30" maxlength="30"></td>
  15.         </tr>
  16.         <tr>
  17.             <td>1 Apellido (*):</td>
  18.             <td><input type="text" name="apellido1" size="30" maxlength="30"></td>
  19.         </tr>
  20.         <tr>
  21.             <td>2º Apellido (*):</td>
  22.             <td><input type="text" name="apellido2" size="30" maxlength="30"></td>
  23.         </tr>
  24.         <tr>      
  25.             <td>Sexo(*):</td>
  26.             <td><input type="radio" name="sexo" value="Varon" checked> Hombre</td>
  27.             <td><input type="radio" name="sexo" value="Hembra"> Mujer</td>
  28.         </tr>
  29.         <tr>
  30.               <td>Fecha de nacimiento(*):</td>
  31.               <td>día:</td>
  32.               <td>    <select name="dia">
  33.                             <option value="1">1 </option>
  34.                             <option value="2">2 </option>
  35.                             <option value="3">3 </option>
  36.                             <option value="4">4 </option>
  37.                             <option value="5">5 </option>
  38.                             <option value="6">6 </option>
  39.                             <option value="7">7 </option>
  40.                             <option value="8">8 </option>
  41.                             <option value="9">9 </option>
  42.                             <option value="10">10 </option>
  43.                             <option value="11">11 </option>
  44.                             <option value="12">12</option>
  45.                             <option value="13">13</option>
  46.                             <option value="14">14 </option>
  47.                             <option value="15">15</option>
  48.                             <option value="16">16</option>
  49.                             <option value="17">17</option>
  50.                             <option value="18">18 </option>
  51.                             <option value="19">19</option>
  52.                             <option value="20">20</option>
  53.                             <option value="21">21</option>
  54.                             <option value="22">22</option>
  55.                             <option value="23">23</option>
  56.                             <option value="24">24</option>
  57.                             <option value="25">25</option>
  58.                             <option value="26">26</option>
  59.                             <option value="27">27</option>
  60.                             <option value="28">28</option>
  61.                             <option value="29">29</option>
  62.                             <option value="30">30</option>
  63.                             <option value="31">31</option>
  64.                             </select>
  65.                  </td>
  66.                  <td>mes:</td>
  67.                              <td>
  68.                              <select name="mes">
  69.                             <option value="1">1 </option>
  70.                             <option value="2">2 </option>
  71.                             <option value="3">3 </option>
  72.                             <option value="4">4 </option>
  73.                             <option value="5">5 </option>
  74.                             <option value="6">6 </option>
  75.                             <option value="7">7 </option>
  76.                             <option value="8">8 </option>
  77.                             <option value="9">9 </option>
  78.                             <option value="10">10 </option>
  79.                             <option value="11">11 </option>
  80.                             <option value="12">12</option>
  81.                             </select>
  82.                             </td>
  83.                             <td>Año(*):</td>
  84.                             <td> <input type="num" name="ano" size="4" maxlength="4"></td>
  85.         </tr>
  86.         <tr>
  87.              <td>N.I.F.(*):</td>
  88.              <td> <input type="text" name="nif" size="9" maxlength="9"></td>
  89.         </tr>
  90.         <tr>
  91.               <td>Tipo de via:</td>
  92.               <td>    <select name="tipocalle">
  93.                             <option value="1">Calle </option>
  94.                             <option value="2">Avenida </option>
  95.                             <option value="3">Travesera </option>
  96.                             <option value="4">Paseo </option>
  97.                             <option value="5">Rambla </option>
  98.                             <option value="6">Plaza </option>
  99.                       </select>
  100.             </td>
  101.        </tr>
  102.        <tr>
  103.              <td>Dirección (*):</td>
  104.              <td><input type="text" name="dirección" size="50" maxlength="50"></td>
  105.        </tr>
  106.        <tr>
  107.              <td>Numero (*):</td>  
  108.              <td><input type="text" name="numero" size="4" maxlength="4"></td>    
  109.        </tr>
  110.        <tr>    
  111.              <td>Portal:  
  112.              <td><input type="text" name="portal" size="3" maxlength="3"></td>    
  113.              <td>Escalera:
  114.              <td><input type="text" name="escalera" size="1" maxlength="1"></td>
  115.        </tr>
  116.        <tr>
  117.              <td>Piso:
  118.              <td><input type="text" name="piso" size="2" maxlength="2"></td>    
  119.              <td>Puerta:
  120.              <td><input type="text" name="puerta" size="2" maxlength="2"></td>
  121.        </tr>
  122.        <tr>    
  123.              <td>Código Postal (*):  
  124.              <td><input type="text" name="cpostal" size="5" maxlength="5"></td>  
  125.        </tr>
  126.        <tr>    
  127.              <td>Población (*):
  128.              <td><input type="text" name="poblacion" size="25" maxlength="25"></td>
  129.        </tr>
  130.        <tr>
  131.              <td>Email@ (*):
  132.              <td><input type="text" name="email" size="25" maxlength="25" ></td>
  133.        </tr>
  134.        <tr>
  135.              <td>Telefono (*):
  136.              <td><input type="num" name="telefono" size="9" maxlength="9"></td>
  137.        </tr>    
  138.              <td>Telefono Móbil :
  139.              <td><input type="num" name="mobil" size="9" maxlength="9"></td>
  140.         <tr>  
  141.              <td>Contraseña (*):
  142.              <td><input type="password" name="password"size="8" maxlength="8"></td>
  143.         </tr>
  144.         <tr>    
  145.              <td>Repetir Contraseña (*):
  146.              <td><input type="password" name="rpassword"size="8" maxlength="8"></td>
  147.          </tr>
  148.          <tr>
  149.          
  150.          <td><input type="submit" value="Enviar" name="envio"></td>
  151.          <td><input name="Restablecer" type="reset" /></td>
  152.          </tr>
  153.  </table>
  154.      </form>
  155. </body>
  156. </html>