多个组的jquery单选按钮

时间:2011-06-26 12:10:01

标签: jquery radio-button

我正在使用jquery来设置单选按钮的样式,但是如果有一个多个组则不起作用 - 这意味着现在只有一个元素被立即设置样式。

我在代码中有:

<script type="text/javascript">
    $(document).ready(function(){

        $(".RadioClass").change(function(){
            if($(this).is(":checked")){
                $(".RadioSelected:not(:checked)").removeClass("RadioSelected");
                $(this).next("label").addClass("RadioSelected");
            }
        });
    });
</script>

并在html中:

<input id="Radio1" type="radio" class="RadioClass" name="group1" >
<label id="Label1" for="Radio1" class="RadioLabelClass">Radio 1</label>
<input id="Radio2" type="radio" class="RadioClass" name="group2"/>
<label id="Label2" for="Radio2" class="RadioLabelClass">Radio 2</label>
<input id="Radio3" type="radio" class="RadioClass" name="group1"/>
<label id="Label3" for="Radio3" class="RadioLabelClass">Radio 3</label>

嗯,例如,我有group2,无线电图像不应该改变,因此对应于jquery。 有关如何使其适用于不同组名的任何想法?

2 个答案:

答案 0 :(得分:2)

不太可靠的作品

$(".RadioClass").change(function(){ ...

更好地替换

$(".RadioClass").click(function(){ ...

答案 1 :(得分:0)

试试这个,

$(".RadioClass").change(function(){
if($(this).is(":checked"))
{
    var groupName = $(this).attr("name");
    $(".RadioClass").each(function(idx)
     {
         if($(this).attr("name") == groupName)
         {
             $(this).next("label").removeClass("RadioSelected");
         }
     });


    $(this).next("label").addClass("RadioSelected");
}
});

编辑:我也意识到按名称选择元素可能更快。

$(".RadioClass").change(function(){
if($(this).is(":checked"))
{
    var groupName = $(this).attr("name");
    $("[name='"+groupName+"']").next("label").removeClass("RadioSelected");

    $(this).next("label").addClass("RadioSelected");
}
});