【问题标题】:jquery datatables: how to clear column search filterjquery datatables:如何清除列搜索过滤器
【发布时间】:2015-01-28 09:47:55
【问题描述】:

我正在使用 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();

但没有任何成功。

【问题讨论】:

    标签: javascript jquery datatables


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可以尝试以下方法:

      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

      【讨论】:

        【解决方案3】:

        试试这个方法:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-12
          • 2021-12-09
          • 1970-01-01
          • 2013-02-19
          • 2021-12-04
          • 1970-01-01
          相关资源
          最近更新 更多