简体   繁体   English

jQuery数据表:如何清除列搜索过滤器

[英]jquery datatables: how to clear column search filter

I am using jquery datatables to make my table searchable. 我使用jQuery的数据表 ,使我的表进行搜索。 I have a dropdown that filters a gender column: 我有一个过滤性别列的下拉列表:

$("#genderDrop").on("change", function(e) {
    var gender = $(this).val();

    formTable.column(2).search(gender).draw();
});

this works fine, but now I want to be able to remove the filter when the user selects "all" from the dropdown. 这可以正常工作,但是现在我希望能够在用户从下拉列表中选择“全部”时删除过滤器。 Here is my attempt: 这是我的尝试:

$("#genderDrop").on("change", function(e) {
    var gender = $(this).val();
    if (gender != "all") {
        formTable.column(2).search(gender).draw();
    } else {
         formTable.column(2).search("").draw();
    }
});

Instead of removing the filter this just searches for an empty string, but I can't work out how to change this so it removes the filter. 除了删除过滤器之外,它只是搜索一个空字符串,但是我不知道如何更改它,因此它将删除过滤器。 I also tried: 我也尝试过:

formTable.column(2).search("*").draw();

and

formTable.column(2).search().draw();

but without any success. 但没有成功。

You can use the option All from gender select with empty value: 您可以使用空值选择所有来自性别的选项:

<option value="">All</option>

them your code will work: 他们您的代码将工作:

$("#genderDrop").on("change", function(e) {
    var gender = $(this).val();

    formTable.column(2).search(gender).draw();
});

Using DataTables example as base: http://jsfiddle.net/PauloSegundo/g15xakh5/ 使用DataTables示例作为基础: http : //jsfiddle.net/PauloSegundo/g15xakh5/

you can try the below: 您可以尝试以下操作:

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

To remove all filters and global filters, please refer to below link: https://datatables.net/plug-ins/api/fnFilterClear 要删除所有过滤器和全局过滤器,请参考以下链接: https : //datatables.net/plug-ins/api/fnFilterClear

Try this way: 尝试这种方式:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM