在让日期范围功能正常工作时遇到问题。我有3个部分工作的日期范围过滤器。当我开始输入开始日期时,如果我将结束日期留空,则会收到错误,表示未定义结束时间。另外注意到我在2016-04-20输入作为开始日期,它显示我2016-04-17,2016-04-18和2016-04-20。
以下是一个示例:https://jsfiddle.net/bLd00Lh5/10/
这是我的剧本:
$('[id^=min_col_date]').bind('change keyup', function() {
start_date = $(this).val();
column_name = $(this).attr("id").slice( -9 );;
dtTable.draw();
});
$('[id^=max_col_date]').bind('change keyup', function() {
end_date = $(this).val();
column_name = $(this).attr("id").slice( -9 );
dtTable.draw();
});
$.fn.dataTableExt.afnFiltering.push(
function( oSettings, aData, iDataIndex ) {
var filterstart = start_date;
var filterend = end_date;
var iStartDateCol = "."+column_name;
var iEndDateCol = "."+column_name;
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;
}
);
有人会知道为什么会这样吗?