我有大量的复选框。例如100; 我需要选择20个不同的复选框。 当我检查20 ChB时,我想禁用检查任何其他框,但是可以取消选中cheked box。 这是真的吗? 我知道所有复选框的ID。我怎么能通过JQuery做到这一点?
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);
}
}
});
};
答案 0 :(得分:1)
以下内容适用于您的情况。
当用户选中3个复选框时,其余复选框将显示disabled
,用户将无法选择它们。但是,检查的三个复选框将保持启用状态以进行取消检查。如果用户取消其中一个,则其他人再次启用(因为检查的复选框的数量将小于3)。
$('input[type="checkbox"]').on('change', function () {
var chcked = $('input:checked').length;
$('input[type="checkbox"]:not(:checked)').prop('disabled', chcked == 3);
});