Ver Mensaje Individual
  #5 (permalink)  
Antiguo 14/02/2014, 11:14
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

Veo que lo entendiste perfectamente , ahora bien, no especificas en qué parte deseas incluir el <select>, si fuera en lugar de los checkbox, sería así:

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

Como verás, cambié el nombre de la etiqueta que tomo, en lugar de "input", ahora es "select", además, ya no necesito verificar si está marcado porque los <select> tienen un valor seleccionado por defecto que es el primero, si eliges otro, se mostrará el elegido. Ahora bien, así como está, mostrará los valores de todos los <select> y no creo que eso sea lo que quieres, de modo que te conviene aplicar una restricción:

Código HTML:
Ver original
  1. <select class="_filter"  name="selected">
  2.    <option class="addfilter" value="0">Seleccione un valor</option>
  3.    <option class="addfilter" value="7">7</option>
  4.    <option class="addfilter" value="3">3</option>
  5.    <option class="addfilter" value="9">9</option>                      

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

Si te fijas, le añadí una opción con valor igual a cero al <select>, siendo ésta la primera opción, la que aparecerá por defecto, mientras que en el script, solamente añado el valor del <select> si es que es mayor a cero, de este modo, solamente se añadirán a dataString los valores de los <select> en los que el usuario haya elegido valores.

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