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

如何在Datatable表头将"Show entries"的下拉框替换为复选框

替换DataTables的"Show entries"下拉为每页行数选择复选框

实现步骤与代码示例

1. 隐藏默认长度选择控件

初始化DataTables时,通过dom配置项移除默认的"Show entries"区域(l代表长度选择器,从默认的lfrtip中去掉l即可)。

2. 添加自定义选择控件

在表格上方添加自定义的行数选择区域,用单选框模拟复选框样式(既符合需求中的视觉效果,又保证每页仅能选择一个行数)。

3. 绑定事件处理逻辑

给选择控件绑定change事件,调用DataTables的API修改每页显示行数并重新渲染表格。


完整代码

HTML结构
<!-- 自定义每页行数选择器 -->
<div class="custom-length-selector">
  每页显示行数:
  <label>
    <input type="radio" name="page-length" value="10" checked> 10
  </label>
  <label>
    <input type="radio" name="page-length" value="25"> 25
  </label>
  <label>
    <input type="radio" name="page-length" value="50"> 50
  </label>
  <label>
    <input type="radio" name="page-length" value="100"> 100
  </label>
</div>

<!-- DataTables 表格容器 -->
<table id="example" class="display" style="width:100%"></table>
JavaScript 初始化与事件绑定
$(document).ready(function() {
  // 初始化DataTables,隐藏默认长度选择器
  const table = $('#example').DataTable({
    dom: 'frtip', // 移除默认的长度选择控件(l)
    pageLength: 10,
    // 示例数据与列配置,可根据实际场景替换
    data: [
      [ "Tiger Nixon", "System Architect", "Edinburgh", "5421", "2011/04/25", "$320,800" ],
      [ "Garrett Winters", "Accountant", "Tokyo", "8422", "2011/07/25", "$170,750" ],
      [ "Ashton Cox", "Junior Technical Author", "San Francisco", "1562", "2009/01/12", "$86,000" ]
    ],
    columns: [
      { title: "姓名" },
      { title: "职位" },
      { title: "办公地点" },
      { title: "分机号" },
      { title: "入职日期" },
      { title: "薪资" }
    ]
  });

  // 监听选择器变化,修改每页行数
  $('input[name="page-length"]').on('change', function() {
    const rowCount = parseInt($(this).val());
    table.page.len(rowCount).draw();
  });
});
CSS 美化样式(匹配参考图效果)
.custom-length-selector {
  margin: 10px 0;
  padding-left: 10px;
  font-size: 14px;
}

.custom-length-selector label {
  margin-right: 18px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
}

/* 将单选框改为复选框样式 */
.custom-length-selector input[type="radio"] {
  appearance: none;
  width: 16px;
  height: 16px;
  border: 1px solid #ddd;
  border-radius: 2px;
  margin-right: 6px;
  position: relative;
}

.custom-length-selector input[type="radio"]:checked {
  background-color: #0d6efd;
  border-color: #0d6efd;
}

.custom-length-selector input[type="radio"]:checked::after {
  content: '✓';
  color: #fff;
  font-size: 12px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

补充说明

  • 如果确实需要使用原生复选框而非样式模拟,可将input[type="radio"]改为input[type="checkbox"],但需在事件处理中添加逻辑保证仅保留最后选中的选项(因为每页只能设置一个行数)。
  • 可根据需求调整可选的行数数值、样式细节等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 16:40:32