0

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

您可以在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);
    }
});

有什么建议么?谢谢大家。

4

2 回答 2

1

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

于 2013-08-18T13:28:03.250 回答
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);
    }
});

演示:小提琴

于 2013-08-18T13:30:07.943 回答