2017-02-19 9 views
0

私はDatatable()。search()関数に問題があります。 私は "x:"で始まるものを入力すると、インデックス1のカラムをフィルタリングしたい場合は、カラム0をフィルタリングする必要があります。DataTable()を使用していますif文を使ったsearch()

私は問題が見つかりませんでした私に似ています。 DataTable()ではこのような操作ができないのでしょうか?

ありがとうございました!ここで

が私のjsコードです:

 function filterName() { 

        var regularExpression = $('.column_filter').val(); 
        var columnNum = 0; 

        if (regularExpression[0] == 'x' && regularExpression[1] == ':') { 
         columnNum = 1; 
         regularExpression = regularExpression.substring(3, regularExpression); 
        } else { 
         columnNum = 0; 
        } 

        if (regularExpression[regularExpression.length - 1] == ' ') { 
         regularExpression = regularExpression.substring(0, regularExpression.length - 1); 
        } 
        regularExpression = regularExpression.replace(/\s/g, "|"); 

        $('#table') 
         .DataTable() 
         .column(columnNum) 
         .search(
          regularExpression, 
          true, 
          false 
         ) 
         .draw(); 
       } 

      $('#table') 
         .DataTable({ 
          "paging": false, 
          "ordering": false, 
          "info": false, 
          "autoWidth": false, 
          "sDom": '<"top"i>rtlp' 

         }); 
        $('.column_filter') 
         .on('keyup click', 
          function() { 
           filterName(); 
          }); 

答えて

0

[OK]を、私は解決策を見つけました。 私は検索機能をクリアしなければならなかった。

私が追加:

$('#table') 
       .DataTable() 
       .columns() 
       .search(''); 

前:

  $('#table') 
        .DataTable() 
        .column(columnNum) 
        .search(
         regularExpression, 
         true, 
         false 
        ) 
        .draw();