1

我有很多复选框。例如 100;我需要选择 20 个不同的复选框。当我要检查 20 ChB 时,我想禁用选中任何其他框,但启用以取消选中已选中的框。这是真的吗?我知道所有复选框的 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);                                        
            }
        }
    });       
};
4

1 回答 1

1

以下应该适用于您的情况。

当用户选中 3 个复选框时,其余复选框将被选中disabled,用户将无法选择它们。但是选中的三个复选框将保持启用状态以用于取消选中目的。如果用户取消选中其中一个,其他的将再次启用(因为选中的复选框数量将少于 3 个)。

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

工作演示

于 2013-09-24T08:00:25.390 回答