首先,我有一组复选框元素,我希望每次单击它时都有一种方法可以计算表单内活动的复选框数量。接下来,限制我要检查的复选框数量,如果达到限制,那么我希望禁用剩余的复选框。目前,jquery .length 返回复选框的总数。
顺便说一句,我正在使用自定义 javascript/css 复选框,但我认为这个想法是一样的
为了检索选中复选框的数量,.length
可以在选择器上工作input:checked
:
var nbChecked = $("input:checked").length;
为了限制复选框的数量,您必须将change
事件绑定到您的复选框并防止在达到此数量时单击...
工作jsFiddle:http: //jsfiddle.net/wpMzY/
Samuel 回答的完整代码示例,以及允许用户取消选择当前选项并选择不同选项的选项:
var maxAmountChecked = 3;
$('input[type=checkbox]').change(function(){
if( $('input:checked').length > maxAmountChecked-1 ){
//disable all unchecked checkboxes, keeping checked boxes available to deselect
$('input:checkbox:not(:checked)').attr('disabled', 'disabled');
}else{
//if maximum amount is not reached, all checkboxes should be available
$('input[type=checkbox]').removeAttr("disabled");
}
});
如果您粘贴了已有的代码 - 我们可以提供进一步的建议。
要查看如何检查复选框是否被选中,请查看:Check checkbox checked property using jQuery
查看如何选中/取消选中复选框:How do I check a checkbox with jQuery
要启用和禁用查看:JQuery - 复选框启用/禁用