jquery 数据表:如何清除列搜索过滤器
jquery datatables: how to clear column search filter
我正在使用 jquery datatables 使我的 table 可搜索。我有一个过滤性别列的下拉菜单:
$("#genderDrop").on("change", function(e) {
var gender = $(this).val();
formTable.column(2).search(gender).draw();
});
这工作正常,但现在我希望能够在用户从下拉列表中选择 "all" 时删除过滤器。这是我的尝试:
$("#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();
但没有任何成功。
您可以尝试以下方法:
function fnResetAllFilters() {
var oSettings = oTable.fnSettings();
for (iCol = 0; iCol < oSettings.aoPreSearchCols.length; iCol++) {
oSettings.aoPreSearchCols[iCol].sSearch = '';
}
oTable.fnDraw();
}
要删除所有过滤器和全局过滤器,请参考以下内容link:
https://datatables.net/plug-ins/api/fnFilterClear
您可以使用选项全部来自性别 select 和空值:
<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/
试试这个方法:
var table = $('#tableHere').DataTable().destroy();
table.state.clear();
我正在使用 jquery datatables 使我的 table 可搜索。我有一个过滤性别列的下拉菜单:
$("#genderDrop").on("change", function(e) {
var gender = $(this).val();
formTable.column(2).search(gender).draw();
});
这工作正常,但现在我希望能够在用户从下拉列表中选择 "all" 时删除过滤器。这是我的尝试:
$("#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();
但没有任何成功。
您可以尝试以下方法:
function fnResetAllFilters() {
var oSettings = oTable.fnSettings();
for (iCol = 0; iCol < oSettings.aoPreSearchCols.length; iCol++) {
oSettings.aoPreSearchCols[iCol].sSearch = '';
}
oTable.fnDraw();
}
要删除所有过滤器和全局过滤器,请参考以下内容link: https://datatables.net/plug-ins/api/fnFilterClear
您可以使用选项全部来自性别 select 和空值:
<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/
试试这个方法:
var table = $('#tableHere').DataTable().destroy();
table.state.clear();