2013-09-24 60 views
1

我有大量的複選框。對於實例100; 我需要選擇20個不同的複選框。 當我將檢查20 ChB時,我想禁用檢查任何其他框,但啓用取消勾選框。 這是真的嗎? 我知道所有選中框的ID。我如何通過JQuery來做到這一點?如何啓用ucheck和禁用複選框檢查

function PageSelected(sender) { 
    selectedIds = []; 
    var enough = 0; 
    $('input[type=checkbox]').each(function() { 
     if (avblPagesCount <= selectedIds.length) { 
      $('#'+sender.id).attr("checked", false); 
     } 

     if (avblPagesCount > selectedIds.length) { 
      if(this.checked) { 
       selectedIds.push(this.id);           
      } 
     } 
    });  
}; 
+2

編寫HTML代碼在這裏的[我如何檢查與jQuery或JavaScript複選框?( –

+0

可能重複http://stackoverflow.com/questions/426258/how-do-i -check-a-checkbox -with-jquery-or-javascript) – Grevling

+2

我讀過它。它不重複 – Arthur

回答

1

以下應該適用於你的情況。

當用戶檢查3個複選框時,其餘的複選框將得到disabled,用戶將無法選擇它們。但是,選中的三個複選框將保持啓用不可用狀態。如果用戶取消選中其中一個,則其他人將再次啓用(因爲檢查的複選框數量將少於3個)。

$('input[type="checkbox"]').on('change', function() { 
    var chcked = $('input:checked').length; 
    $('input[type="checkbox"]:not(:checked)').prop('disabled', chcked == 3); 
}); 

Working Demo

+1

謝謝,工作很棒) – Arthur