2013-08-07 62 views
0

首先,我有一組複選框元素,我希望每次點擊它時都有一個方法來計算在窗體中活動的複選框的數量。接下來,對我想檢查多少個複選框設置限制,如果達到限制,我希望剩下的複選框處於禁用狀態。目前,jquery .length返回複選框的總數。帶有限制的Jquery count元素

順便說一句,我使用的是自定義JavaScript/CSS的複選框,但我認爲這個想法是一樣的

回答

1

爲了獲取選中的複選框的數量,.length的作品,但在選擇input:checked

var nbChecked = $("input:checked").length; 

爲了限制的檢查箱子的數量,你必須change事件綁定到複選框,並防止在達到這個數字時,點擊...

工作的jsfiddle:http://jsfiddle.net/wpMzY/

0

完整的代碼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"); 
    } 
});