如何重置数据表中的过滤器

One*_*era 5 jquery datatables

我无法使用fnFilter()清除过滤器。

这是我的HTML代码:

<table id="todays _table>

               <thead>
                 <tr id="todays_search_input_feilds">
                     <td class="input_filter">
                        <input type="text" id="type" class="form-control search_events">
                    </td>
                    <td class="input_filter">
                        <input type="text" id="vendor " class="form-control search_events">
                    </td>
                </tr>
            </thead>
    </table> 
Run Code Online (Sandbox Code Playgroud)

这是我的JQuery代码

$('#todays_table').dataTable().fnFilter('');
    oTable.fnClearTable();
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下方法进行清除:

$('input[class="form-control search_events"]').val('');
Run Code Online (Sandbox Code Playgroud)

但是,这样做的问题是,它清除了值,但数据未加载到dataTable中。仅在我单击任何过滤器后才加载

kal*_*ain 9

DataTables 1.10+ 新 API 可以实现相同的效果,无需使用以下链接的插件:

var table = $('#example').DataTable(); 
table.search('').columns().search('').draw();
Run Code Online (Sandbox Code Playgroud)

如果您使用的是早期版本的 DataTables,则需要包含名为fnFilterClear的插件库并调用:

var table = $('#example').DataTable(); 
table.fnFilterClear();
Run Code Online (Sandbox Code Playgroud)

请参阅此DataTables API 页面以获取更多信息以及早期版本的 DataTable 需要使用的插件。


Gyr*_*com 8

重置自定义过滤器

如果您在本示例中使用自定义过滤功能,则需要在过滤和重绘表之前清除涉及的控件。

$('input.search_events').val('');
$('#todays_table').dataTable().fnDraw();
Run Code Online (Sandbox Code Playgroud)

重置全局搜索

  • 如果您使用自定义过滤器,则可以使用以下命令一次性重置所有列: $('#yourtable').DataTable().columns().every( function () { this.search('')} ); 然后重置全局搜索并重新绘制表格: $('#yourtable').DataTable().search('').draw(); (2认同)

Ali*_*tos 5

对于那些使用columnregex执行搜索的人:

$('#example').DataTable().column('').search('').draw();
Run Code Online (Sandbox Code Playgroud)

  • 列('')应该是列('')。$('#example').DataTable().columns('').search('').draw(); (4认同)