2017-04-14 133 views
0

为什么我的搜索文本框不能初始化为空?我曾尝试:jQuery Datatables搜索文本框

table.state.clear(); 

,我曾尝试:

"bStateSave": false, // save datatable state(pagination, sort, etc) in cookie. 

我使用的过滤器后,重定向到另一个查看,创建一个新的搜索,然后再回到我的搜索结果中的文本框总是有我用于过滤器的最后一个字符串。

我使用MVC5作为我的框架。

enter image description here

enter image description here

var initTable4 = function() { 

    var table = $('#sample_4'); 
    table.dataTable({ 

     "language": { 
      "aria": { 
       "sortAscending": ": activate to sort column ascending", 
       "sortDescending": ": activate to sort column descending" 
      }, 
      "emptyTable": "No data available in table", 
      "info": "Showing _START_ to _END_ of _TOTAL_ records", 
      "infoEmpty": "No records found", 
      "infoFiltered": "(filtered1 from _MAX_ total records)", 
      "lengthMenu": "Show _MENU_", 
      "search": "Search:", 
      "zeroRecords": "No matching records found", 
      "paginate": { 
       "previous":"Prev", 
       "next": "Next", 
       "last": "Last", 
       "first": "First" 
      } 
     },    

     "bStateSave": false, // save datatable state(pagination, sort, etc) in cookie. 

     "lengthMenu": [ 
      [6, 15, 20, -1], 
      [6, 15, 20, "All"] // change per page values here 
     ], 
     // set the initial value 
     "pageLength": 6, 
     "columnDefs": [{ // set default column settings 
      'orderable': false, 
      'targets': [0] 
     }, { 
      "searchable": false, 
      "targets": [0] 
     }], 
     "order": [ 
      [1, "asc"] 
     ] // set first column as a default sort by asc 
    }); 

    var tableWrapper = jQuery('#sample_4_wrapper'); 

    table.find('.group-checkable').change(function() { 
     var set = jQuery(this).attr("data-set"); 
     var checked = jQuery(this).is(":checked"); 
     jQuery(set).each(function() { 
      if (checked) { 
       $(this).prop("checked", true); 
      } else { 
       $(this).prop("checked", false); 
      } 
     }); 
    }); 
} 

回答

0

我相信table.search('').draw()将清除出专门的搜索框的值,但仍保留您的任何现有栏搜索。

我在搜索字段中实现了一个[x]清除框,如下所示。

$(document).on('input', '.clearable', 
function() { 
    $(this)[tog(this.value)]('x'); 
}).on('mousemove', '.x', function (e) { 

    $(this)[tog(
    this.offsetWidth - 18 < e.clientX - this.getBoundingClientRect().left)]('onX'); 
}).on('click', '.onX', function() { 
    $(this).removeClass('x onX').val(''); 
    table.search('').draw(); 
}); 
+0

是的,我已经注意到table.search('')。draw()在其他SOF问题上提及并尝试过。也许我没有在代码中的正确位置使用空字符串。 – JoshYates1980

+0

作为一个测试,你只是尝试用jQuery手动清除文本框来查看它是否触发了搜索清除功能?我认为它确实如此 – Eric