A ver si alguien puede darme una solución ya que llevo bastante con el tema y no hay manera. De primeras contar que es la primera vez que uso jQuery así que disculpas por el código.
Tengo un formulario con esta estructura
Un <h3> como titulo y depues una lista con diferentes opciones todas con checkbox. Todo esto sería un grupo.
Como este contenido es dinámico no hay un número determinado de <h3> ni de checkbox.
Lo que intento es lo siguiente. Al seleccionar un checkbox de cada grupo el resto se ponen en disabled y en el <h3> se escribe el valor de check checked.
Hasta aquí va todo perfecto
El problema me surge cuando hay un grupo (<h3> + la lista de chicbox) en la cual pueden ser varios los seleccionados, con lo cual en el h3 se debe escribir el valor de todos los seleccionados. utilizo una capa para guardar lo resultados anteriores o me escribe todo el rato(no se vacía nunca) o no escribe.
Resultado... nada. Os dejo un trozo del código y os aseguro que haré un monumento, ya que me está rompiendo la cabeza. Gracias por anticipado.
Código:
$(".cajas").click(function(){ //los checkbox son de la clase cajas, al hacer click var desc ='.nombre'+$(this).attr("id"); var saca = $(desc).val(); // tengo el id de la caracteristica seleccionada var texto='.car'+$(this).attr("id"); var nom = $(texto).attr("id"); //tengo el texto a escribir if(saca==44){ // si la caracteristica tiene id 44 var especial=$("#caracteristica44").text(); // recojo información de la capa oculta }else{ especial=""; } $(".cajas").each(function(){ $(this).removeAttr("disabled",false); // quito todos los disabled $(".accordion h3 #"+saca+"L").text("");//vacio el texto del h3 $(".accordion h3."+saca).removeClass("select");// quito la clase asociada al h3 $("#caracteristica44").text(""); //borra todo }); $(".cajas:checked").each(function(){ $(".accordion h3 #"+saca+"L").text(nom +" "+especial);//escribe $(".accordion h3."+saca).addClass("select");//añade la clase if(saca==44){ $("#caracteristica44").text(nom +" "+especial); //escribo en la capa oculta el valor especial=""; }