2017-02-19 90 views
0

Datatable()。search()函數有問題。 我希望能達到的是,當我鍵入以「x:」開頭的東西時,我想過濾索引爲1的列,而在其他情況下,它應該過濾列0.使用DataTable()。search()if語句

我還沒有發現任何問題類似於我的。也許這樣的操作對於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

好吧,我找到了解決辦法。 我不得不清除搜索功能。

我說:

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

前:

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