Próbuję wdrożyć Daterange i filtr przedziału wiekowego dla datatable.Zakres dat i filtr przedziału wiekowego na datatable
Pomyślnie zaimplementowałem filtr wieku. Oto skrzypce: http://jsfiddle.net/7y8n0wLj/26/
Oto jquery
$.fn.dataTable.ext.search.push(function (settings, data, dataIndex) {
if ($('#range').val().indexOf("+")>=0){
var number=$('#range').val().slice(0,-1);
//alert(number);
return parseInt(data[1]) > parseInt(number || data[1]);
}else if ($('#range').val().indexOf("-")>=0){
var number=$('#range').val().split("-");
//alert(number[0]);
//alert(number[1]);
return parseInt(data[1]) >= parseInt(number[0] || data[1])
&& parseInt(data[1]) <= parseInt(number[1] || data[1]);
}
});
$('#range').on('change',table.draw);
Ale gdy próbuję wdrożyć DATERANGE i przedział wiekowy bezskutecznie Oto skrzypce: http://jsfiddle.net/evcfespn/176/
$.fn.dataTableExt.afnFiltering.push(
function(oSettings, aData, iDataIndex) {
var grab_daterange = $("#date_range").val();
var give_results_daterange = grab_daterange.split(" to ");
var filterstart = give_results_daterange[0];
var filterend = give_results_daterange[1];
var iStartDateCol = 5; //using column 2 in this instance
var iEndDateCol = 5;
var tabledatestart = aData[iStartDateCol];
var tabledateend= aData[iEndDateCol];
if (filterstart === "" && filterend === "")
{
return true;
}
else if ((moment(filterstart).isSame(tabledatestart) || moment(filterstart).isBefore(tabledatestart)) && filterend === "")
{
return true;
}
else if ((moment(filterstart).isSame(tabledatestart) || moment(filterstart).isAfter(tabledatestart)) && filterstart === "")
{
return true;
}
else if ((moment(filterstart).isSame(tabledatestart) || moment(filterstart).isBefore(tabledatestart)) && (moment(filterend).isSame(tabledateend) || moment(filterend).isAfter(tabledateend)))
{
return true;
}
return false;
});
$.fn.dataTable.ext.search.push(function (settings, data, dataIndex) {
if ($('#range').val().indexOf("+")>=0){
var number=$('#range').val().slice(0,-1);
//alert(number);
return parseInt(data[3]) > parseInt(number || data[3]);
}else if ($('#range').val().indexOf("-")>=0){
var number=$('#range').val().split("-");
//alert(number[0]);
//alert(number[1]);
return parseInt(data[3]) >= parseInt(number[0] || data[3])
&& parseInt(data[3]) <= parseInt(number[1] || data[3]);
}
});
$('#range').on('change',table.draw);
Proszę o pomoc.