DataTables 1.12.1 外置搜索框绑定后搜索不生效问题
问题根因
初始化方法用错了:小写开头的dataTable()返回的是jQuery对象,不是DataTables的API实例,直接调.search()根本触发不了内置的搜索逻辑。
修复方案
两种改法选一个就行:
- 改初始化方法为大写开头
把dataTable()换成首字母大写的DataTable(),返回值就是可以直接调用API的实例:// 注意D大写 const oTable = $('#example').DataTable(); $('#myInputTextField').keyup(function() { oTable.search($(this).val()).draw(); }) - 保留原初始化写法,手动取API实例
不想改初始化代码的话,调用方法前加个.api()拿到正式API实例就行:const oTable = $('#example').dataTable(); $('#myInputTextField').keyup(function() { oTable.api().search($(this).val()).draw(); })
可选优化
不想页面同时出现两个搜索框的话,初始化的时候加个配置把DataTables自带的默认搜索框隐藏掉就行,搜索功能本身不会受影响:
const oTable = $('#example').DataTable({ dom: 'lrtip' });
默认dom配置字符串是
lfrtip,其中f对应的就是自带搜索框,把f删掉就不会渲染默认搜索框了。
内容的提问来源于stack exchange,提问作者Meikel Rizky Hartawan
相关产品推荐
相关产品推荐

