使用jQuery可以检查每个表中带有复选框的三个复选框中只有一个

时间:2013-08-18 13:24:19

标签: jquery checkbox

我有一个复选框表,我希望每行只检查三分之一。我编写了一个代码,它适用于每一行,但是当我在第二行中选中一个复选框时,第一行复选框将被取消选中。

您可以查看http://jsfiddle.net/annakoutli/Zp4d5/1/

上的代码

这是HTML

                                                                                                                                                                      

            <td class="col_featured-ad"><input type="checkbox" id="featured3_ad2" class="radio2 price featured3" value="featured3_ad2" name="featured_ad2" />
            </td>
            <td class="col_featured-ad"><input type="checkbox" id="featured7_ad2" class="radio2 price featured7" value="featured7_ad2" name="featured_ad2" />
              </td>
            <td class="col_featured-ad"><input type="checkbox" id="featured15_ad2" class="radio2 price featured15" value="featured15_ad2" name="featured_ad2" />
              </td>
          </tr>

这里是jQuery

  $('input.radio1:checkbox').change(function(){
    var $group = $('input.radio1:checkbox');
    if($(this).is(':checked')){
        $group.not($(this)).attr('checked',false);
    }
});

$('input.radio2:checkbox').change(function(){
    var $group = $('input.radio2:checkbox');
    if($(this).is(':checked')){
        $group.not($(this)).attr('checked',false);
    }
});

有什么建议吗?提前谢谢大家。

2 个答案:

答案 0 :(得分:1)

我的建议是您错误地使用了Checkbox。复选框应该用于选择多个元素。如果您只想选择一个元素,那么您应该使用为此情况明确设计的单选按钮。然后你不需要使用任何JavaScript。

答案 1 :(得分:1)

除了使用复选框代替单选按钮

$('input.radio2:checkbox').click(function(){
    var $chk = $(this), $group = $chk.closest('tr').find('input.radio2:checkbox');
    if(this.checked){
        $group.not(this).prop('checked', false);
    }
});

演示:Fiddle