Foros del Web » Programando para Internet » Javascript »

validar algunos campos

Estas en el tema de validar algunos campos en el foro de Javascript en Foros del Web. Hola, tengo un formulario en el que segun que opcion coges en el radio button (Cliente registrado) se desactivan unos campos del formulario o otros. ...
  #1 (permalink)  
Antiguo 07/04/2010, 05:56
 
Fecha de Ingreso: marzo-2009
Mensajes: 221
Antigüedad: 15 años, 1 mes
Puntos: 0
validar algunos campos

Hola, tengo un formulario en el que segun que opcion coges en el radio button (Cliente registrado) se desactivan unos campos del formulario o otros. Tengo una funcion para validar los campos del formulario (validar) pero el problema es que cuando se desactivan los campos del formulario, no quiero que esos campos se validen porque el cliente no los rellenara. No se si me entendeis, como puedo hacer para que segun el radio button marcado se validen los 10 primeros campos y sino el 11 y 12 por ejemplo.
No os pongo todas la funciones de validar.


Código Javascript:
Ver original
  1. function validar(formulario)
  2. {
  3.     if (validarDni(formulario)==false){
  4.         return false;
  5.     }
  6.  
  7.     if (validarTexto(formulario)==false){
  8.         return false;
  9.     }
  10.    
  11.     if (validarNumeros(formulario)==false){
  12.         return false;
  13.     }
  14.    
  15.     ......
  16. }
  17.  
  18.  
  19. function validarDni(formulario)
  20. {
  21.     abc=formulario.dni.value;
  22.     nif=abc.substring(0,abc.length-1);
  23.     let=abc.charAt(abc.length-1);
  24.     if (!isNaN(let))
  25.      {
  26.       alert('Falta la letra del Dni.');
  27.       formulario.dni.focus();
  28.       return false;
  29.      }
  30.     else
  31.     {
  32.       cadena="TRWAGMYFPDXBNJZSQVHLCKET";
  33.       posicion = nif % 23;
  34.       letra = cadena.substring(posicion,posicion+1);
  35.       if (letra!=let.toUpperCase())
  36.        {
  37.         alert("DNI no valido.");
  38.         formulario.dni.focus();
  39.         return false;
  40.        }
  41.     }
  42.     return true;
  43. }
  44.  
  45.  
  46. function validarTexto(formulario)
  47. {
  48.     nom=formulario.nombre.value;
  49.     ape1=formulario.apellido1.value;
  50.     ape2=formulario.apellido2.value;
  51.     dir=formulario.direccion.value;
  52.  
  53.  
  54.  
  55.     if (!(/^[a-z]+$/i.test(nom)))
  56.     {
  57.         alert('Introduce solo texto en el campo nombre.');
  58.                 formulario.nombre.focus();
  59.         return false;
  60.     }
  61.  
  62.     if (!(/^[a-z]+$/i.test(ape1)))
  63.     {
  64.         alert('Introduce solo texto en el campo apellidos.');
  65.             formulario.apellido1.focus();
  66.         return false;
  67.     }
  68.    
  69.     if (!(/^[a-z]+$/i.test(ape2)))
  70.     {
  71.         alert('Introduce solo texto en el campo apellidos.');
  72.             formulario.apellido2.focus();
  73.         return false;
  74.     }
  75.    
  76.     if (dir=="")
  77.     {
  78.         alert('El campo direccion esta vacio.');
  79.             formulario.direccion.focus();
  80.          return false  
  81.     }
  82.    
  83. }

Código HTML:
Ver original
  1. <form method="POST" name="frm" action="comprueba.php" onSubmit="return validar(this)">
  2.  <div align="center"><strong>CONFIRMACI&Oacute;N DE DATOS</strong> </div>
  3.      
  4.    
  5.      <fieldset id="form">
  6.       <ol>
  7.        <li><font size="2"><label>Cliente registrado?</label>
  8.  
  9.          NO  <input type="radio" value="nocliente" checked onClick="lockIt(_F)" id="radio1" name="radio1" >
  10.          SI <input type="radio" value="cliente" onClick="lockIt(_T)" id="radio1" name="radio1"  />
  11.     </font>
  12.     </li>
  13.  
  14.         <li><label>DNI: <font color=blue>(*)</font></label>
  15.                 <input type="text" size="9" maxlength="9"name="dni" id="dni" onFocus="if(isDis())blur();">
  16.         </li>
  17.         <li><label>Nombre:<font color=blue>(*)</font></label>
  18.                 <input type="text" size="30" maxlength="30"name="nombre" onFocus="if(isDis())blur();">
  19.         </li>
  20.         <li><label>Primer Apellido:<font color=blue>(*)</font></label>
  21.                 <input type="text" size="30" maxlength="30"name="apellido1" onFocus="if(isDis())blur();">
  22.         </li>
  23.         <li><label>Segundo Apellido:</label>
  24.                 <input type="text" size="30" maxlength="30"name="apellido2" onFocus="if(isDis())blur();">
  25.         </li>
  26.         <li><label>Direccion:<font color=blue>(*)</font></label>
  27.                 <input type="text" size="40" maxlength="40"name="direccion" onFocus="if(isDis())blur();">
  28.         </li>
  29.        
  30.         <li><label>Fecha Nacimiento: <font color=blue>(*)</font></label>
  31.        
  32.             <select size="1" name="dia" onFocus="if(isDis())blur();">
  33.                 <option selected 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.            
  66.             <select size="1" name="mes" onFocus="if(isDis())blur();">
  67.                 <option selected value="1">Enero</option>
  68.                 <option value="2">Febrero</option>
  69.                 <option value="3">Marzo</option>
  70.                 <option value="4">Abril</option>
  71.                 <option value="5">Mayo</option>
  72.                 <option value="6">Junio</option>
  73.                 <option value="7">Julio</option>
  74.                 <option value="8">Agosto</option>
  75.                 <option value="9">Setiembre</option>
  76.                 <option value="10">Octubre</option>
  77.                 <option value="11">Noviembre</option>
  78.                 <option value="12">Diciembre</option>
  79.             </select>              
  80.            
  81.             <select size="1" name="year" onFocus="if(isDis())blur();">
  82.                 <option value="1992">1992</option>
  83.                 <option value="1991">1991</option>
  84.                 <option value="1990">1990</option>
  85.                 <option value="1989">1989</option>
  86.                 <option value="1988">1988</option>
  87.                 <option value="1987">1987</option>
  88.                 <option value="1986">1986</option>
  89.                 <option value="1985">1985</option>
  90.                 <option value="1984">1984</option>
  91.                 <option value="1983">1983</option>
  92.                 <option value="1982">1982</option>
  93.                 <option value="1981">1981</option>
  94.                 <option value="1980">1980</option>
  95.                 <option value="1979">1979</option>
  96.                 <option value="1978">1978</option>
  97.                 <option value="1977">1977</option>
  98.                 <option value="1976">1976</option>
  99.                 <option value="1975">1975</option>
  100.                 <option value="1974">1974</option>
  101.                 <option value="1973">1973</option>
  102.                 <option value="1972">1972</option>
  103.                 <option value="1971">1971</option>
  104.                 <option value="1970">1970</option>
  105.                 <option value="1969">1969</option>
  106.                 <option value="1968">1968</option>
  107.                 <option value="1967">1967</option>
  108.                 <option value="1966">1966</option>
  109.                 <option value="1965">1965</option>
  110.                 <option value="1964">1964</option>
  111.                 <option value="1963">1963</option>
  112.                 <option value="1962">1962</option>
  113.                 <option value="1961">1961</option>
  114.                 <option selected value="1960">1960</option>
  115.              </select> 
  116.         </li>
  117.         <li><label>Telefono:<font color=blue>(*)</font></label>
  118.             <input type="text" size="15" maxlength="15"name="telefono" onFocus="if(isDis())blur();">
  119.         </li>
  120.        
  121.         <li><label>Movil:</label>
  122.             <input type="text" size="9" maxlength="9"name="movil" onFocus="if(isDis())blur();">
  123.         </li>
  124.        
  125.        
  126.         <li><label>E-mail:<font color=blue>(*)</font></label>
  127.             <input type="text" size="25" maxlength="25"name="mail" onFocus="if(isDis())blur();">
  128.         </li>
  129.  
  130.  
  131.         <hr />
  132.         <li><label>DNI</label>
  133.        <input type="text" name="dnicliente" size="10" maxlength="9" onFocus="if(!isDis())blur();" />
  134.         </li>
  135.  
  136.         <li><label>Password</label>
  137.                <input type="password" name="password" size="15" maxlength="15" onFocus="if(!isDis())blur();">
  138.         </li>
  139.      
  140.         <hr />
  141.         <p align="center">
  142.  
  143.         <input name="submit" type="submit" class="btn" value="Confirmar" />
  144.       </p>
  145.     </fieldset>
  146.    </form>
  #2 (permalink)  
Antiguo 07/04/2010, 07:26
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: validar algunos campos

Hola

Cuando recibas los valores en la función validar, condiciona los radios. Arreglo al valor de esos radios, validas unos campos u otros

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 07/04/2010, 09:02
 
Fecha de Ingreso: marzo-2009
Mensajes: 221
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: validar algunos campos

Creo que lo que me comentas es algo asi, pero el problema es que el boton radio no se me actualiza cada vez que se cambia de estado, no se si me entiendes, la variable n siempre vale lo mismo.
Como puedo hacer para que actualize la variable?

Código Javascript:
Ver original
  1. function validar(formulario)
  2. {
  3.     var n = document.getElementById("radio1").value;
  4.     if(n=="nocliente"){
  5.         validacionesA
  6.    
  7.     }else{
  8.         validacionesB
  9.     }
  10. }
  #4 (permalink)  
Antiguo 07/04/2010, 09:38
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: validar algunos campos

Hola

Cita:
Iniciado por jawir Ver Mensaje
Creo que lo que me comentas es algo asi, pero el problema es que el boton radio no se me actualiza cada vez que se cambia de estado, no se si me entiendes, la variable n siempre vale lo mismo.
Como puedo hacer para que actualize la variable?
La verdad es que no te entiendo, vuelve a explicarlo

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #5 (permalink)  
Antiguo 07/04/2010, 12:52
 
Fecha de Ingreso: marzo-2009
Mensajes: 221
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: validar algunos campos

Haber si me explico bien xD
El boton radio puede ser si, si es cliente registrado o no si no lo es.
Por defecto esta en No, pero si lo cambio y le doy a que si soy cliente al hacer el

var n = document.getElementById("radio1").value;

La variable n siempre vale No, porque no tiene en cuenta que he clicado y he cambiado el radio buton a Si, no se si me explico bien. Lo que querria es que la variable "n" se actualizase cada vez que cambio el estado del radio button.
  #6 (permalink)  
Antiguo 08/04/2010, 05:38
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: validar algunos campos

Hola

Cita:
Iniciado por jawir Ver Mensaje
Haber si me explico bien xD
El boton radio puede ser si, si es cliente registrado o no si no lo es.
Por defecto esta en No, pero si lo cambio y le doy a que si soy cliente al hacer el

var n = document.getElementById("radio1").value;

La variable n siempre vale No, porque no tiene en cuenta que he clicado y he cambiado el radio buton a Si, no se si me explico bien. Lo que querria es que la variable "n" se actualizase cada vez que cambio el estado del radio button.
Bien, ahora lo que entendido. Solo has verificar cual de los dos radios está checked
Cita:
<form method="POST" name="frm" id="frm" action="comprueba.php" onSubmit="return validar(this)">
Ahora en el javascript

Código Javascript:
Ver original
  1. function validar(formulario)
  2. {
  3. var valor_radio = ""
  4.     var n = document.getElementById('frm').getElementsByTagName('radio');
  5. for (i = 0; i < n.length; i++){
  6. if (n[i].checked) {valor_radio = n[i].value;}
  7. }
  8.  
  9.     if(valor_radio=="nocliente"){
  10.         validacionesA
  11.    
  12.     }else{
  13.         validacionesB
  14.     }
  15. }

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #7 (permalink)  
Antiguo 08/04/2010, 09:04
 
Fecha de Ingreso: marzo-2009
Mensajes: 221
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: validar algunos campos

Gracias Adler

Etiquetas: campos
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 10:49.