Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用CSS和jQuery对组中的单选按钮进行样式化_Jquery_Jquery Selectors - Fatal编程技术网

使用CSS和jQuery对组中的单选按钮进行样式化

使用CSS和jQuery对组中的单选按钮进行样式化,jquery,jquery-selectors,Jquery,Jquery Selectors,我有一个包含许多单选按钮组的表单,如下所示: <form blah-blah-blah> <input type="radio" id="id1_1" name="nam1" value="" class="rad"> <label for="id1_1" class="kf">label1_1</label> <input type="radio" id="id1_2" name="nam1" value=""

我有一个包含许多单选按钮组的表单,如下所示:

<form blah-blah-blah>
    <input type="radio" id="id1_1" name="nam1" value="" class="rad">
      <label for="id1_1" class="kf">label1_1</label>
    <input type="radio" id="id1_2" name="nam1" value="" class="rad">
      <label for="id1_2" class="kf">label1_2</label>
    <input type="radio" id="id1_3" name="nam1" value="" class="rad">
      <label for="id1_3" class="kf">label1_3</label>
    <input type="radio" id="id2_1" name="nam2" value="" class="rad">
      <label for="id2_1" class="kf">label2_1</label>
    <input type="radio" id="id2_2" name="nam2" value="" class="rad">
      <label for="id2_2" class="kf">label2_2</label>
    <input type="radio" id="id2_3" name="nam2" value="" class="rad">
      <label for="id2_3" class="kf">label2_3</label>
</form>
最后,我使用jQuery使其工作,但它没有。 通过单击标签进行无线电更改

    $(document).ready(function(){
        $(".rad").change(function(){
            if($(this).is(':checked')){      
                $(this).next("label").addClass("sel");
            }else{
                $(this).next("label").removeClass("sel");
            };
        });
    });
如果检查收音机,标签必须改变颜色。如果收音机丢失“已选中”,则状态标签必须将颜色更改为“未选中”

怎么了(别忘了几组收音机)

编辑更新:
我已经将这两个答案结合到了最优雅的解决方案=)

谢谢大家!

以下方法应该有效

 $(document).ready(function(){
 var $chk=null;
    $(".rad").change(function(e){
        if($(this).is(':checked')){
            if($chk) $chk.next("label").removeClass("sel");
            $(this).next("label").addClass("sel");
            $chk=$(this);
        }else{
            $(this).next("label").removeClass("sel");
        };
    });
});​
试试这个:

$(document).ready(function(){
    $(".kf").click(function() {
        var chk = $(this).prev("input");
        var chk_name = $(chk).attr("name");
        if (!$(chk).is(':checked')) {
            $(this).parent().find('input[name="' + chk_name + '"]').each(function () {
                $(this).removeAttr("checked");
                $(this).next('label').removeClass('sel');
            });
            $(chk).attr("checked", "checked");
            $(this).addClass('sel');
        } else {
            $(chk).removeAttr("checked");
            $(this).removeClass('sel');
        }
    });
});

工作示例

不起作用。是的,现在标签丢失了“选定”状态,但所有标签都丢失了,而不仅仅是当前收音机组中的标签。我是说。。在您的示例中,整个表单上可能只选择了一个标签。我已经将最优雅的解决方案=)$(document).ready(function(){$(“.rad”).change(function(){var chk_name=$(this).attr(“name”);if($(this).is(':checked'){$(this.parents().find('input[name=“”+chk_name+“])).each(function(){$(this.next('label').removeClass('sel');});$(this.next('label”).addClass('sel');};;});不。一组收音机中只能选择一个项目。i、 这个表格上有两个元素。再次检查我的例子。格雷廷斯!现在这就是我需要的!非常感谢。我已经将最优雅的解决方案=)$(document).ready(function(){$(“.rad”).change(function(){var chk_name=$(this).attr(“name”);if($(this).is(':checked'){$(this).parents().find('input[name=“'+chk_name+”))。each(function(){$(this).next('label')).removeClass('sel');});$(this.next(“label”).addClass(“sel”);};};;});
 $(document).ready(function(){
 var $chk=null;
    $(".rad").change(function(e){
        if($(this).is(':checked')){
            if($chk) $chk.next("label").removeClass("sel");
            $(this).next("label").addClass("sel");
            $chk=$(this);
        }else{
            $(this).next("label").removeClass("sel");
        };
    });
});​
$(document).ready(function(){
    $(".kf").click(function() {
        var chk = $(this).prev("input");
        var chk_name = $(chk).attr("name");
        if (!$(chk).is(':checked')) {
            $(this).parent().find('input[name="' + chk_name + '"]').each(function () {
                $(this).removeAttr("checked");
                $(this).next('label').removeClass('sel');
            });
            $(chk).attr("checked", "checked");
            $(this).addClass('sel');
        } else {
            $(chk).removeAttr("checked");
            $(this).removeClass('sel');
        }
    });
});