如何更改yajra dataTable搜索过滤系统?

时间:2016-08-24 09:09:03

标签: jquery search filter datatable

假设我在数据表搜索框'b'中写入,那么它通常会显示'abc','ybu','break','brain'等。但我想只获得'break','brain'(开始)与b)。这意味着当我写一些单词时,它会向我显示从那开始的单词。 我正在使用yajra DataTables 1.10.10。

修改

我解决了这个问题,但现在面临新的问题 当我尝试使用两个数据表时,它会停止显示一个数据表tbody数据,但另一个数据表正常工作

$.fn.dataTableExt.afnFiltering.push(
      function(oSettings, aData, iDataIndex) {
          var keywords = $(".dataTables_filter input").val().split(' ');  
          var matches = 0;
          for (var k=0; k<keywords.length; k++) {
              var keyword = keywords[k];
              for (var col=0; col<aData.length; col++) {
                  if (aData[col].charAt(0).toLowerCase() == keyword.charAt(0).toLowerCase()) {
                      matches++;
                      break;
                  }
              }
          }
          return matches == keywords.length;
       }
    );
 $('.table2id').dataTable({
 });
 $('.table1id').dataTable({
});

终于解决了它

var ptable = $('#table2').DataTable();
var rtable = $('#table1').DataTable();

var term;
$('#table1_filter input[type="search"]').keyup(function(e){
    console.log("table1_filter");
    var term = $(this).val();

    regex = '^' + term ;
    rtable.column( 0 ).search( regex, true, false ).draw();

});
$('#table2_filter input[type="search"]').keyup(function(e){

    term = $(this).val();
    regex = '^' + term ;
    ptable.column( 0 ).search( regex, true, false ).draw(); 

}); 

1 个答案:

答案 0 :(得分:3)

您可以使用RegEx执行此操作 示例代码 -

$('input[type="search"]').keyup(function(){
    var term = $(this).val(),
    regex = '^' + term ;
    table.search( regex, true, false ).draw();
});

工作JsFiddle。但它只适用于列式 例如 -

table.column(0).search( regex, true, false ).draw();

这里我们只将搜索正则表达式应用于第一列。