Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/08/2014, 12:50
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: Checkbox dependientes

Ahora mismo imagino en varias formas de hacerlo, una de ellas consistiría en tener los checkbox dependientes en contenedores cuya clase sea igual que el identificador del checkbox padre, de este modo, cuando marques un checkbox padre, muestras al contenedor cuya clase coincida con el identificador del checkbox marcado.

Código HTML:
Ver original
  1. <section id = "principal">
  2.     Checkbox A: <input type = "checkbox" id = "a" />
  3.     Checkbox B: <input type = "checkbox" id = "b" />
  4.     Checkbox C: <input type = "checkbox" id = "c" />
  5.  
  6. <section id = "secundario">
  7.     <div class = "a">
  8.         A<input type = "checkbox" />
  9.         A<input type = "checkbox" />
  10.         A<input type = "checkbox" />
  11.     </div>
  12.     <div class = "b">
  13.         B<input type = "checkbox" />
  14.         B<input type = "checkbox" />
  15.         B<input type = "checkbox" />
  16.     </div>
  17.     <div class = "c">
  18.         C<input type = "checkbox" />
  19.         C<input type = "checkbox" />
  20.         C<input type = "checkbox" />
  21.     </div>

Código CSS:
Ver original
  1. div{
  2.     display: none;
  3. }

Código Javascript:
Ver original
  1. $("#principal [type=checkbox]").click(function(){
  2.     var self = this;
  3.     $("#principal [type=checkbox]").each(function(index, checkbox){
  4.         checkbox.checked = checkbox == self ? true : false;
  5.     });
  6.     $("#secundario div").each(function(index, div){
  7.         div.style.display = div.className == self.id ? "block" : "none";
  8.     });
  9. });

Y para que el checkbox anteriormente marcado no quede así, recorro al conjunto de checkbox padre y en la iteración, dejo marcado al checkbox que coincida con el que acabamos de marcar, tomando así un comportamiento similar al de los radiobutton.



Imagino que esto podría simplificarse, pero es solo una de las tantas alternativas de solución.

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