javascript - 如何使用 jquery 检查特定数量的复选框并禁用剩余?

标签 javascript jquery html checkbox

在具有多个复选框(超过 12 个)的 .vipGuests 的特定 DIV 中,我想选择最多 12 个复选框。 一旦用户选择第 12 个复选框,其余复选框将被禁用。

我下面提到的代码只计算选中的复选框的数量。我如何实现该功能,以便用户可以选中最多 12 个复选框,其余的将被禁用。

$('.vipGuests input[type=checkbox]').on('change', function () {             
    var totalGuest = 0;
    $('.vipGuests input[type=checkbox]:checked').each(function () {
        totalGuest++;
    });
});

注意:主要的是,在检查/取消选中期间,当检查的复选框为11时,所有复选框都将处于事件状态。只有当计数器等于 12 时,才会禁用唯一未选中的复选框。

最佳答案

您可以使用 :not()选择器并选择未选中的复选框并禁用它们。此外,您不需要使用 .each() 来获取复选框的数量。请改用 length 属性。

$(".vipGuests :checkbox").on("change", function(){
    if ($(".vipGuests :checkbox:checked").length >= 3)
        $(".vipGuests :checkbox:not(:checked)").prop("disabled", true);
    else
        $(".vipGuests :checkbox:not(:checked)").prop("disabled", false);
});

$(".vipGuests :checkbox").on("change", function(){
    $(".vipGuests :checkbox:not(:checked)").prop("disabled", $(".vipGuests :checkbox:checked").length >= 3);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="vipGuests">
  <input type="checkbox" />
  <input type="checkbox" />
  <input type="checkbox" />
  <input type="checkbox" />
  <input type="checkbox" />
  <input type="checkbox" />
</div>

关于javascript - 如何使用 jquery 检查特定数量的复选框并禁用剩余?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39890758/

相关文章:

JQuery 指令不能仅在一个目标上切换类

html - css - 自动调整图像大小以适合屏幕(无需 Javascript)

html - 为什么使用某种@font-face 会导致涉及 CSS3 和 jQuery 转换的文本在 mac 上的 webkit 浏览器中不可见?

c# - MVC4 View 未绑定(bind)到 POST Controller 中的模型

javascript - 使用 Scrollify 获取上次查看的索引

html - css中的移动菜单栏

javascript - 当满足指定条件时立即退出 JavaScript 函数?

javascript - 在保持边距的同时禁用浏览器打印页眉和页脚,但也在第 2、3 页等上

javascript - 分析在我的网站上跟踪 Youtube iframe

javascript - 原生数组Reduce实现问题