DataTables - 使用单个下拉列表在多个列中进行搜索

时间:2017-04-13 05:14:34

标签: javascript datatable datatables

我正在使用DataTables,我正在尝试使用下拉列表在表格中搜索结果。但是,我需要搜索两个特定的列,而不是搜索一列。

以下语法适用于单个列,但我如何使用多列?

var table = $('#example1').DataTable();
    $("#filter").on('change', function() {
        table.column([4]).search($(this).val()).draw();
    });    

我试过这样做,但是当我使用这个代码时,它只搜索第一列中的结果,例如。第四栏。并忽略其余的。

        table.column([4,5]).search($(this).val()).draw();

适当的方法是什么?

4 个答案:

答案 0 :(得分:4)

让我们总结一下这里的所有事情。它也会帮助其他人。

您可以按照以下方式实现此目的:

table.column(4).search(this.value).column(5).search(this.val‌​ue).draw();

它将在4列上执行搜索(4是列的索引),之后它将根据提供的过滤器值从5列过滤数据,最后它将绘制表。

要记住的一点是,Filter应用于两列,因此两列都必须包含匹配的数据。

Here is its filddle

这可以通过使用fnMultiFilter来实现,因为文档解释了:

此插件为DataTables添加了在单个调用中设置多个列过滤术语的功能(如果使用服务器端处理,则特别有用)。与列sName参数结合使用时,只需传入一个对象,其中键/值对是您要搜索的列,以及您要搜索的值。

答案 1 :(得分:2)

使用columns()代替列():

var table = $('#example1').DataTable();
$("#filter").on('change', function() {
    table.columns([4,5]).search($(this).val()).draw();
}); 

答案 2 :(得分:1)

从文档中,您应该使用.columns()(注意复数)

答案 3 :(得分:0)

要在多个列之间进行OR搜索,请使用禁用列搜索

  

columns.searchableSince: Enable or disable search on the data in a certain column.

或者,您也可以使用HTML属性从搜索中删除列

<th data-searchable=false>