Ver Mensaje Individual
  #11 (permalink)  
Antiguo 14/02/2014, 17:15
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Obtener value de multiples checkbox

Creo que no entendí bien lo que habías dicho, entonces, ¿tu estructura sería así?:

Código HTML:
Ver original
  1. <ul>
  2.     <li id = "a">
  3.         <input type = "checkbox" value = "1" /> 1
  4.     </li>
  5.  
  6.     <li id = "b">
  7.         <input type = "checkbox" value = "2" /> 2
  8.     </li>
  9.  
  10.     <li id = "c">
  11.         <input type = "checkbox" value = "3" /> 3
  12.     </li>
  13. </ul>
  14.  
  15. <ul>
  16.     <li id = "d">
  17.         <input type = "checkbox" value = "4" /> 4
  18.     </li>
  19.  
  20.     <li id = "e">
  21.         <input type = "checkbox" value = "5" /> 5
  22.     </li>
  23.  
  24.     <li id = "f">
  25.         <input type = "checkbox" value = "6" /> 6
  26.     </li>
  27. </ul>
  28.  
  29. <select id = "g">
  30.     <option value = 0>Seleccione una opción</option>
  31.     <option value = 7>7</option>
  32.     <option value = 8>8</option>
  33.     <option value = 9>9</option>
  34.  
  35. <label id = "respuesta"></label>
  36. <button id = "filter">Filtrar</button>

Si fuera así, tendrías que hacerlo de este modo:

Código Javascript:
Ver original
  1. var filtrar = document.getElementById("filter"),
  2.     select = document.getElementsByTagName("select")[0],
  3.     menus = document.getElementsByTagName("ul"),
  4.     total = menus.length,
  5.     salida = document.getElementById("salida");
  6.  
  7. filtrar.addEventListener("click", function(){
  8.     var dataString = "";
  9.  
  10.     for (i = 0; i < total; i++){
  11.         var opciones = menus[i].getElementsByTagName("li");
  12.         for (j = 0, subTotal = opciones.length; j < subTotal; j++){
  13.             var checkbox = opciones[j].getElementsByTagName("input")[0];
  14.             if (checkbox.checked)
  15.                 dataString += dataString.length ? "&" + opciones[j].id + "=" + checkbox.value : opciones[j].id + "=" + checkbox.value;
  16.         }                    
  17.     }
  18.  
  19.     if (select.value > 0)
  20.         dataString += dataString.length ? "&" + select.id + "=" + select.value : select.id + "=" + select.value;
  21.          
  22.     salida.innerHTML = "Resultado: " + dataString;
  23. }, false);

Como el <select> es un elemento independiente de los dos <ul>, lo tomas desde un principio, luego, la forma en como tomaba los valores de los checkbox sigue siendo la misma, finalmente, tomaría el valor seleccionado en el <select> si es que éste es mayor a cero.

Así se ve en ejecución: http://jsbin.com/tafev/1

Por si a caso, funciona bien en Chrome, Opera, Firefox, Safari y en IE.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand