You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用原生JS实现Bootstrap5表格复选框全选与取消功能

实现方法

你只需要在现有代码的 Bootstrap JS 引入代码之后、</body> 标签之前插入如下原生 JavaScript 代码即可:

<script>
// 获取全选复选框元素
const selectAllCheckbox = document.getElementById('flexCheckIndeterminate');
// 获取tbody内所有子复选框元素
const childCheckboxes = document.querySelectorAll('#dataTable tbody .form-check-input');

// 给全选框绑定change事件
selectAllCheckbox.addEventListener('change', function() {
  // 遍历所有子复选框,同步选中状态
  childCheckboxes.forEach(checkbox => {
    checkbox.checked = this.checked;
  });
  // 清除不确定状态,适配Bootstrap交互规范
  selectAllCheckbox.indeterminate = false;
});

// 可选拓展:子复选框手动勾选时联动全选框状态
childCheckboxes.forEach(checkbox => {
  checkbox.addEventListener('change', function() {
    const checkedCount = document.querySelectorAll('#dataTable tbody .form-check-input:checked').length;
    if (checkedCount === 0) {
      selectAllCheckbox.checked = false;
      selectAllCheckbox.indeterminate = false;
    } else if (checkedCount === childCheckboxes.length) {
      selectAllCheckbox.checked = true;
      selectAllCheckbox.indeterminate = false;
    } else {
      selectAllCheckbox.indeterminate = true;
    }
  });
});
</script>

逻辑说明

核心逻辑是监听全选框的change事件,触发时把所有子复选框的checked属性和全选框的状态同步,即可实现点击全选、再次点击全取消的需求。可选拓展代码可以让全选框自动匹配子复选框的选中情况,切换未选、半选、全选三种状态,符合Bootstrap官方交互设计。

内容的提问来源于stack exchange,提问作者Safaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:06:07