我有一个复选框表,我希望每行只检查三分之一。我编写了一个代码,它适用于每一行,但是当我在第二行中选中一个复选框时,第一行复选框将被取消选中。
您可以查看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);
}
});
有什么建议吗?提前谢谢大家。
答案 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