Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/06/2018, 01:34
pedromir
 
Fecha de Ingreso: enero-2014
Mensajes: 91
Antigüedad: 10 años, 10 meses
Puntos: 2
Realizar una accion segun los checkbox marcados

Hola, tengo un formulario con varios checkbox y pretendo que al marcar un checkbox, me compruebe en un array los valores que cumplen esta condición y si marco varios checkbox pues compruebe en el array los valores que cumplen todas las condiciones y muestre el resultado
Código HTML:
Ver original
  1. <form name="suscripcion" action="#">
  2. <h2>Temas que me interesan</h2>
  3. <input  type="checkbox" name="deportes" value="Deportes" />
  4.      <label for="deportes">Deportes</label><br/>
  5. <input type="checkbox" name="noticias" value="Noticias" />
  6.      <label for="noticias">Noticias</label><br/>
  7. <input type="checkbox" name="economia" value="Economia" />
  8.      <label for="economia">Economía</label><br/>
  9. <input  type="button"  name="ver" value="Ver Temas" onclick="info()" />
  10. </form>
Código Javascript:
Ver original
  1. var datos = new Array();
  2. datos =[["deportes","noticias","NO"],
  3. ["deportes","NO","economia"],
  4. ["NO","noticias","NO"],
  5. ["no","noticias","economia"],
  6. ["no","no","economia"],
  7. ["deportes","no","no"],
  8. ["deportes","noticias","economia"]];
  9.  
  10. function info() {
  11.     var txtDeportes = document.suscripcion.deportes.value.toLowerCase();
  12.     var txtNoticias = document.suscripcion.noticias.value.toLowerCase();
  13.     var txtEconomia = document.suscripcion.economia.value.toLowerCase();  
  14.     var encontrados = [];
  15.      
  16.      for(i=0;i<datos.length;i++){
  17.    
  18.     deportes = datos[i][0].indexOf(txtDeportes)>=0
  19.     noticias = datos[i][1].indexOf(txtNoticias)>=0
  20.     economia = datos[i][2].indexOf(txtEconomia)>=0
  21.    
  22.          if (document.suscripcion.deportes.checked == true) {          
  23.         if (deportes)              
  24.             encontrados.push(datos[i]);            
  25.          }
  26.          else { deportes = "" }
  27.          if (document.suscripcion.noticias.checked == true) {
  28.                 if (noticias)          
  29.             encontrados.push(datos[i]);
  30.             }
  31.          else { noticias = "" }
  32.          if (document.suscripcion.economia.checked == true) {
  33.             if (economia)
  34.             encontrados.push(datos[i]);
  35.             }  
  36.          else { economia = "" }
  37.        
  38.     }
  39.          
  40. alert(encontrados);
  41.  
  42. }
Si marco un sólo checkbox, el que sea este funciona perfectamente, pero no consigo que al marcar varios me cree el if correspondiente, por ejemplo si tengo marcado noticias y economía me debe crear el if siguiente
Código Javascript:
Ver original
  1. if (noticias && economia)
  2.         encontrados.push(datos[i]);

Última edición por pedromir; 29/06/2018 a las 01:37 Razón: Me faltaban unos datos