我在过滤数据表(通过输入元素输入)中的特定月份时遇到麻烦。
这是我的代码:
HTML:
<div class="form-inline container-fluid mb-2">
<label for="month_selector">month</label>
<input type="month" id="month_selector" class="form-control form-control-sm mx-sm-3">
</div>
JS:
var dataTable = '';
function initDataTable (target, options) {
let data = {
stateSave: true,
destroy: true,
}
$.extend(data, options)
dataTable = $(target)
dataTable.DataTable(data)
}
$(function () {
//some other code
initDataTable('.datatable')
})
//DATEPICKER
$('#month_selector').datepicker({
"onSelect": function (date) {
console.log(date)
minDateFilter = new Date(date.getFullYear(), date.getMonth(), 1).getTime()
maxDateFilter = new Date(date.getFullYear(), date.getMonth() + 1, 0).getTime()
dataTable.draw()
}
}).keyup(function () {
minDateFilter = new Date(this.value.getFullYear(), this.value.getMonth(), 1).getTime()
maxDateFilter = new Date(this.value.getFullYear(), this.value.getMonth() + 1, 0).getTime()
dataTable.draw()
})
// 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;
}
)
问题是,变量“ date”中的日期是今天的日期,并表示“ getFullYear()”不是一个函数。而且我不确定筛选器代码是否正确。
代码基于this
您知道问题出在哪里吗?