首先,我有一組複選框元素,我希望每次點擊它時都有一個方法來計算在窗體中活動的複選框的數量。接下來,對我想檢查多少個複選框設置限制,如果達到限制,我希望剩下的複選框處於禁用狀態。目前,jquery .length返回複選框的總數。帶有限制的Jquery count元素
順便說一句,我使用的是自定義JavaScript/CSS的複選框,但我認爲這個想法是一樣的
首先,我有一組複選框元素,我希望每次點擊它時都有一個方法來計算在窗體中活動的複選框的數量。接下來,對我想檢查多少個複選框設置限制,如果達到限制,我希望剩下的複選框處於禁用狀態。目前,jquery .length返回複選框的總數。帶有限制的Jquery count元素
順便說一句,我使用的是自定義JavaScript/CSS的複選框,但我認爲這個想法是一樣的
爲了獲取選中的複選框的數量,.length
的作品,但在選擇input:checked
:
var nbChecked = $("input:checked").length;
爲了限制的檢查箱子的數量,你必須change
事件綁定到複選框,並防止在達到這個數字時,點擊...
工作的jsfiddle:http://jsfiddle.net/wpMzY/
如果您粘貼了您已有的代碼 - 我們可以進一步提供建議。
要了解如何檢查的,如果複選框被選中的樣子:Check checkbox checked property using jQuery
要了解如何檢查/取消選中複選框:How do I check a checkbox with jQuery
啓用和在禁用的樣子:JQuery - checkbox enable/disable
完整的代碼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");
}
});