jquery datatables:如何清除列搜索过滤器

时间:2015-01-28 09:47:55

标签: javascript 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();

但没有任何成功。

3 个答案:

答案 0 :(得分:2)

您可以使用选项All from all 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/

答案 1 :(得分:0)

你可以尝试以下方法:

function fnResetAllFilters() {
  var oSettings = oTable.fnSettings();
  for (iCol = 0; iCol < oSettings.aoPreSearchCols.length; iCol++) {
    oSettings.aoPreSearchCols[iCol].sSearch = '';
  }
  oTable.fnDraw();
}

要删除所有过滤器和全局过滤器,请参阅以下链接: https://datatables.net/plug-ins/api/fnFilterClear

答案 2 :(得分:0)

尝试这种方式:

&#13;
&#13;
var table = $('#tableHere').DataTable().destroy();
table.state.clear();
&#13;
&#13;
&#13;