2016-05-23 86 views
0

我有一個Datatbles表看起來像這樣: enter image description here數據表列搜索:假還禁用日期範圍搜索

從對的DatePicker用來工作之前,我不得不做出DateTime列自定義jQueryUI的「可搜索:false「。我這樣做是因爲我不希望日期時間結果包含在搜索字段過濾器中。

​​

這是從到日期範圍實施:

//Date Range Picker 
$(function() { 
$("#from").datepicker({ 
    onClose: function(selectedDate) { 
    $("#to").datepicker("option", "minDate", selectedDate); 
    } 
}); 
$("#to").datepicker({ 
    onClose: function(selectedDate) { 
    $("#from").datepicker("option", "maxDate", selectedDate); 
    } 
}); 
}); 

$.fn.dataTableExt.afnFiltering.push(
    function(oSettings, aData, iDataIndex) { 
     var iFini = document.getElementById('from').value; 
     var iFfin = document.getElementById('to').value; 
     var iStartDateCol = 6; 
     var iEndDateCol = 6;   
); 

任何人都可以找出什麼做的有兩 - 搜索工作?

回答

1

我能找到的唯一解決方案是覆蓋搜索方法。這將啓用僅搜索0-5列,並且From-To輸入仍可以使用第6列作爲日期範圍。

$('.dataTables_filter input').unbind().on('keyup', function() { 
    var searchTerm = this.value.toLowerCase(); 
    $.fn.dataTable.ext.search.push(function(settings, data, dataIndex) 
     { 
      if (~data[0].toLowerCase().indexOf(searchTerm)) return true; 
      if (~data[1].toLowerCase().indexOf(searchTerm)) return true; 
      if (~data[2].toLowerCase().indexOf(searchTerm)) return true; 
      if (~data[3].toLowerCase().indexOf(searchTerm)) return true; 
      if (~data[4].toLowerCase().indexOf(searchTerm)) return true; 
      if (~data[5].toLowerCase().indexOf(searchTerm)) return true; 
      return false; 
     }) 
    table.draw(); 
    $.fn.dataTable.ext.search.pop(); 
}) 
+0

我認爲這是您可以想出的最佳解決方案。 「searchable:false」禁用通用過濾是合乎邏輯的,當通過代碼執行過濾時,所以我們也必須改變默認的過濾方法。 – davidkonrad