2016-10-18 20 views
2

我無法使用fnFilter()清除過濾器。如何重置數據表中的過濾器

這裏是我的HTML代碼:

<table id="todays _table> 

       <thead> 
       <tr id="todays_search_input_feilds"> 
        <td class="input_filter"> 
         <input type="text" id="type" class="form-control search_events"> 
        </td> 
        <td class="input_filter"> 
         <input type="text" id="vendor " class="form-control search_events"> 
        </td> 
       </tr> 
      </thead> 
    </table> 

,這裏是我的jQuery代碼

$('#todays_table').dataTable().fnFilter(''); 
    oTable.fnClearTable(); 

我試着用以下方法清除:

$('input[class="form-control search_events"]').val(''); 

但這個問題是,它正在清除該值,但數據不在dataTable中加載。它只樣之後,我對任何過濾器點擊

回答

1

要如果您使用自定義的過濾功能,如this example重置自定義過濾器

,你需要清除過濾之前參與控制和重繪表。

$('input.search_events').val(''); 
$('#todays_table').dataTable().fnDraw(); 

要重置全局搜索

  • jQuery的數據表1.9+

    呼叫fnFilter() API方法用空字符串作爲重置全局搜索和重繪表中的第一個參數。

    例如:

    $('#example').dataTable().fnFilter(''); 
    
  • jQuery的數據表1.10

    呼叫search()與空字符串作爲第一個參數,然後調用draw() API方法來重置全局搜索和重繪表API的方法。

    例如:

    $('#example').DataTable().search('').draw(); 
    
+0

它拋出一個錯誤。你有沒有其他解決方案? – Onera

+0

@Onera,你使用的是jQuery DataTables 1.10還是1.9?你在控制檯中遇到什麼錯誤? –

+0

我收到錯誤說搜索不是一個函數,所以我是它不是數據表1.10,我試着用你最新的代碼 - 值正在清除,但數據表沒有繪製,我點擊過濾器後,它正在加載 – Onera

-1

數據表1.10+新的API可以使用下面的鏈接實現,而不對插件的 要求相同的效果:

var table = $('#example').DataTable(); 
table.search('').columns().search('').draw(); 

如果您使用的是早期版本的DataTable,則需要包含插件l ibrary稱爲fnFilterClear和撥打:

var table = $('#example').DataTable(); 
table.fnFilterClear(); 

請參見本DataTables API page更多的信息和需要被用於早期版本的DataTable的插件。

+0

給出的例子DataTables 1.10+不起作用。如果您按列排序(例如,第2列降序)然後使用它,它將返回仍按第2列降序排列的結果,儘管沒有任何搜索項影響結果。我在服務器端模式下使用DataTables,但是在重置ajax請求中發送的'sort'和'order'(到ASC,列0)時,無法看到任何實現此方法的方法。 – Andy

相關問題