Estoy implementando un sistema de radio button personalizado con imagenes, y he conseguido que funcione correctamente con dos radio buttons (yes/no).
El problema es que necesito crear varios, y con varios el comportamiento se entre cruza entre todos, vamos que si apreto el SI del primero igual me desmarca los otros que estaban en NO.
Sé donde puede estar el problema y es a la hora de identificar el ambito de acción de cada radio button, que no interfluyan con el resto, pero no se resolverlo.
¿Alguien me puede echar una mano a resolverlo?
El código es el siguiente:
Código Javascript:
Ver original
$(document).ready(function() { /* Mira si hay alguno marcado por defecto y añade la clase selected en la vista*/ $(".checklist li input:checked").parent().addClass("selected"); /* Selección del usuario */ $(".checklist li.yes").click( function(event) { event.preventDefault(); if($(this).parent().find(":radio").is(':checked')) { $(".checklist li.no").removeClass("selected"); $(".checklist li.no").find(":radio").removeAttr("checked"); $(this).addClass("selected"); $(this).find(":radio").attr("checked","checked"); }else{ $(this).addClass("selected"); $(this).find(":radio").attr("checked","checked"); } } ); $(".checklist li.no").click( function(event) { event.preventDefault(); if($(this).parent().find(":radio").is(':checked')) { $(".checklist li.yes").removeClass("selected"); $(".checklist li.yes").find(":radio").removeAttr("checked"); $(this).addClass("selected"); $(this).find(":radio").attr("checked","checked"); }else{ $(this).addClass("selected"); $(this).find(":radio").attr("checked","checked"); } } ); });
Código HTML:
Ver original
<form action=""> <fieldset> <ul class="checklist"> <li class="yes"> <input name="jqdemo" value="value1" type="radio" id="choice_a" /> </li> <li class="no"> <input name="jqdemo" value="value2" type="radio" id="choice_b"/> </li> </ul> <!-- nuevo checklist --> <ul class="checklist2"> <li class="yes"> <input name="jqdemo2" value="value3" type="radio" id="choice_c" /> </li> <li class="no"> <input name="jqdemo2" value="value4" type="radio" id="choice_d"/> </li> </ul> </fieldset> </form>
Muchas gracias de antemano!