如何在DataTables指定列添加搜索框?尝试columnDefs未成功
解决DataTables仅指定列显示搜索框的问题
你当前的代码会遍历表格所有列并绑定搜索事件,要只给指定列加搜索框,直接修改columns()的参数,指定目标列即可,不用依赖columnDefs:
修改方案:
把.columns()改成指定列选择器,比如按列索引(从0开始计数)选择需要的列,示例如下:
.columns([0, 2, 3]) // 仅对索引0、2、3的列添加搜索框 .every(function () { var that = this; $('input', this.footer()).on('keyup change clear', function () { if (that.search() !== this.value) { that.search(this.value).draw(); } }); });
补充说明:
- 列选择器支持多种形式:除了索引数组,还可以用列的
className(比如.columns('.searchable'),前提是目标列的className设为searchable),或者列名称(如果初始化表格时给列设置了name属性)。 - 如果之前尝试
columnDefs没效果,是因为columnDefs里的searchable属性是控制该列是否允许被全局搜索,而非控制是否显示单独的列搜索框,和你要实现的需求不匹配。 - 要确保指定列的
<tfoot>里有对应的<input>元素,否则事件绑定会找不到目标。
内容的提问来源于stack exchange,提问作者Twiggit
相关产品推荐
相关产品推荐

