2015-05-26 29 views
1

我有一个jQuery的数据表,它有日期filter.My代码看起来像这样在下面plunker链接提到mentioned.Pasting我的JS代码DatePickersjQuery的数据表日期过滤器

$(function() { 
    var oTable=$('#datatable').DataTable({ 
    "oLanguage": { 
     "sSearch": "Filter Data" 
    }, 
    "iDisplayLength": -1, 
    "sPaginationType": "full_numbers", 

    }); 

    $('#datepicker_from').click(function() { 
    $("#datepicker_from").datepicker("show"); 
    }); 
    $('#datepicker_to').click(function() { 
    $("#datepicker_to").datepicker("show"); 
    }); 


    $("#datepicker_from").datepicker({ 
    "onSelect": function(date) { 
     minDateFilter = new Date(date).getTime(); 
     oTable.fnDraw(); 
    } 
    }).keyup(function() { 
    minDateFilter = new Date(this.value).getTime(); 
    oTable.fnDraw(); 
    }); 

    $("#datepicker_to").datepicker({ 
    "onSelect": function(date) { 
     maxDateFilter = new Date(date).getTime(); 
     oTable.fnDraw(); 
    } 
    }).keyup(function() { 
    maxDateFilter = new Date(this.value).getTime(); 
    oTable.fnDraw(); 
    }); 

}); 

// Date range filter 
minDateFilter = ""; 
maxDateFilter = ""; 

$.fn.dataTableExt.afnFiltering.push(
    function(oSettings, aData, iDataIndex) { 
    if (typeof aData._date == 'undefined') { 
     aData._date = new Date(aData[0]).getTime(); 
    } 

    if (minDateFilter && !isNaN(minDateFilter)) { 
     if (aData._date < minDateFilter) { 
     return false; 
     } 
    } 

    if (maxDateFilter && !isNaN(maxDateFilter)) { 
     if (aData._date > maxDateFilter) { 
     return false; 
     } 
    } 

    return true; 
    } 
); 
    http://plnkr.co/edit/yTAmQRJHN1zVdzYJBKop?p=preview 

起始和结束日期范围过滤器似乎工作正常。但随着这些 我可能有一个单选按钮(即:本周和本月) 本周单选按钮将应该给今天的日期和上周之间的结果,并与月同样的情况单选按钮。 我应该如何解决这个问题。? date_filter后

回答

1

添加单选按钮:该过滤的数据表基础上选择

<p id="radio_date_filter"> 
    <input type="radio" name="filterTable" value="week" />This Week 
    <input type="radio" name="filterTable" value="month"/>This Month 
</p> 

写脚本:

$("#radio_date_filter input:radio").click(function(){ 


    var currentDate = new Date(); 

    if($(this).val() == 'week'){ 

     var weekDate = new Date(); 
     var first = weekDate.getDate() - 7; 
     var firstDayofWeek = new Date(weekDate.setDate(first)); 
     minDateFilter = firstDayofWeek.getTime(); 


    }else{ 

     var monthDate = new Date(); 
     var firstDayOfMonth = new Date(monthDate.setMonth(monthDate.getMonth() - 1)); 
     minDateFilter = firstDayOfMonth.getTime(); 

    } 

    maxDateFilter = currentDate.getTime(); 
    oTable.fnDraw(); 
}); 

working plunker

+0

谢谢:)但是在plunker如果我选择一周的复选框现在它显示假设它是27-05-2015并且一周以上的记录,但我想在21-27之间取记录,并且与月份一样。好意助攻 – ravicandy

+0

感谢它的工作:) – ravicandy

+0

@ravicandy:你的欢迎。 –