Jquery 是否可以让Datatables搜索框搜索一列,而使用下拉列表搜索其他列?

Jquery 是否可以让Datatables搜索框搜索一列,而使用下拉列表搜索其他列?,jquery,datatables,Jquery,Datatables,我试图设计一个表来满足一组特定的标准 将有列下拉列表,因此如果选择了某个选项,它将仅显示与该值完全匹配的列 将有一个搜索框,键入此框将仅在第一列进行筛选 不幸的是,这似乎是DataTables中两个相互矛盾的需求 此代码允许将搜索栏限制在第一列 numCols = $("#myTable thead tr:first th").length columns = [{ "searchable": true }] for (var i=1; i < numCols; i++) { co

我试图设计一个表来满足一组特定的标准

  • 将有列下拉列表,因此如果选择了某个选项,它将仅显示与该值完全匹配的列
  • 将有一个搜索框,键入此框将仅在第一列进行筛选
  • 不幸的是,这似乎是DataTables中两个相互矛盾的需求

    此代码允许将搜索栏限制在第一列

    numCols = $("#myTable thead tr:first th").length
    columns = [{ "searchable": true }]
    for (var i=1; i < numCols; i++) {
        columns.push({ "searchable": false });
    }
    
    var table = $('#myTable').DataTable({
        "paging": false,
        "columns":columns
    });
    
    现在,我知道我已经在表的
    声明中将
    searchable
    设置为false,删除该设置允许下拉列表再次工作-但这意味着搜索文本框会过滤所有列上的表,而不仅仅是第一列

    旧式文档中说有一个
    bFilterable
    选项做了类似的事情,但这在当前版本中已不再存在。现在我已经没有主意了

    那么,有没有一种方法可以限制Datatables表,使搜索框只对一列进行筛选,而允许对其他列进行下拉筛选?


    PS:

    事实证明,使用标准Datatables API无法实现这一点,但使用jQuery可以扩展表来管理这一点

    首先,对要搜索的每一列保持搜索打开状态(因此排除列上的任何
    搜索
    选项)

    然后,通过移除
    f
    标志,使用旋转过滤框

    然后在表本身之前创建一个自定义搜索框:

    $('<input type="text" />')
        .insertBefore('#myTable')
        .before('<label>My special search: </label>')
        .on( 'keyup change', function () {
            table
            .column( 0 )
            .search( this.value )
            .draw();
        });
    
    可以更改以匹配任意列中的字符串行,如下所示:

    .columns(0,1,2)
    
    .column([0,1,2])
    
    或者可以使其与搜索字符串位于所有给定列中的行相匹配,如下所示:

    .columns(0,1,2)
    
    .column([0,1,2])
    
    有很多小提琴演示了这个,所以你可以看到

    • ,

    查看功能差异的最佳示例字符串是
    一个

    。事实证明,使用标准的Datatables API是不可能的,但是使用jQuery可以扩展表来管理它

    首先,对要搜索的每一列保持搜索打开状态(因此排除列上的任何
    搜索
    选项)

    然后,通过移除
    f
    标志,使用旋转过滤框

    然后在表本身之前创建一个自定义搜索框:

    $('<input type="text" />')
        .insertBefore('#myTable')
        .before('<label>My special search: </label>')
        .on( 'keyup change', function () {
            table
            .column( 0 )
            .search( this.value )
            .draw();
        });
    
    可以更改以匹配任意列中的字符串行,如下所示:

    .columns(0,1,2)
    
    .column([0,1,2])
    
    或者可以使其与搜索字符串位于所有给定列中的行相匹配,如下所示:

    .columns(0,1,2)
    
    .column([0,1,2])
    
    有很多小提琴演示了这个,所以你可以看到

    • ,

    查看功能差异的最佳示例字符串是
    一个

    。事实证明,使用标准的Datatables API是不可能的,但是使用jQuery可以扩展表来管理它

    首先,对要搜索的每一列保持搜索打开状态(因此排除列上的任何
    搜索
    选项)

    然后,通过移除
    f
    标志,使用旋转过滤框

    然后在表本身之前创建一个自定义搜索框:

    $('<input type="text" />')
        .insertBefore('#myTable')
        .before('<label>My special search: </label>')
        .on( 'keyup change', function () {
            table
            .column( 0 )
            .search( this.value )
            .draw();
        });
    
    可以更改以匹配任意列中的字符串行,如下所示:

    .columns(0,1,2)
    
    .column([0,1,2])
    
    或者可以使其与搜索字符串位于所有给定列中的行相匹配,如下所示:

    .columns(0,1,2)
    
    .column([0,1,2])
    
    有很多小提琴演示了这个,所以你可以看到

    • ,

    查看功能差异的最佳示例字符串是
    一个

    。事实证明,使用标准的Datatables API是不可能的,但是使用jQuery可以扩展表来管理它

    首先,对要搜索的每一列保持搜索打开状态(因此排除列上的任何
    搜索
    选项)

    然后,通过移除
    f
    标志,使用旋转过滤框

    然后在表本身之前创建一个自定义搜索框:

    $('<input type="text" />')
        .insertBefore('#myTable')
        .before('<label>My special search: </label>')
        .on( 'keyup change', function () {
            table
            .column( 0 )
            .search( this.value )
            .draw();
        });
    
    可以更改以匹配任意列中的字符串行,如下所示:

    .columns(0,1,2)
    
    .column([0,1,2])
    
    或者可以使其与搜索字符串位于所有给定列中的行相匹配,如下所示:

    .columns(0,1,2)
    
    .column([0,1,2])
    
    有很多小提琴演示了这个,所以你可以看到

    • ,
    查看功能差异的最佳示例字符串是
    an