jquery datatables:如何清除列搜索过滤器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery datatables:如何清除列搜索过滤器相关的知识,希望对你有一定的参考价值。
我使用jquery datatables使我的表可搜索。我有一个过滤性别列的下拉菜单:
$("#genderDrop").on("change", function(e) {
var gender = $(this).val();
formTable.column(2).search(gender).draw();
});
这工作正常,但现在我希望能够在用户从下拉列表中选择“全部”时删除过滤器。这是我的尝试:
$("#genderDrop").on("change", function(e) {
var gender = $(this).val();
if (gender != "all") {
formTable.column(2).search(gender).draw();
} else {
formTable.column(2).search("").draw();
}
});
而不是删除过滤器,这只是搜索一个空字符串,但我无法弄清楚如何更改它,以便它删除过滤器。我也尝试过:
formTable.column(2).search("*").draw();
和
formTable.column(2).search().draw();
但没有任何成功。
答案
您可以使用选项All from gender select with empty value:
<option value="">All</option>
你的代码将起作用:
$("#genderDrop").on("change", function(e) {
var gender = $(this).val();
formTable.column(2).search(gender).draw();
});
使用DataTables示例作为基础:http://jsfiddle.net/PauloSegundo/g15xakh5/
另一答案
你可以试试下面的:
function fnResetAllFilters() {
var oSettings = oTable.fnSettings();
for (iCol = 0; iCol < oSettings.aoPreSearchCols.length; iCol++) {
oSettings.aoPreSearchCols[iCol].sSearch = '';
}
oTable.fnDraw();
}
另一答案
试试这种方式:
var table = $('#tableHere').DataTable().destroy();
table.state.clear();
以上是关于jquery datatables:如何清除列搜索过滤器的主要内容,如果未能解决你的问题,请参考以下文章
如果整个列数据与搜索字符串匹配,如何在jQUERY Datatable中显示/搜索数据?
当整个列中包含带有下拉列表的单元格时,如何应用搜索(jQuery DataTables)? [关闭]
jQuery DataTable 自定义按钮正则表达式列搜索