目前使用wenzhixin的Bootstrap Table库。这一个在这里https://github.com/wenzhixin/bootstrap-table。我遇到了filterby选项的问题。我通过Echoing PHP代码创建了表,而不是使用json导入数据。所以它实际上仍然是一个基于HTML的表。我遇到的主要问题是按日期范围过滤行。我还使用moment.js脚本编译一个日期数组,以便在bootstrap表filterby中使用。
这是我想要实现的JSfiddle示例。正如您在尝试选择过滤日期时所看到的那样,虽然moment.js有效,但过滤器将不会返回任何内容。
https://jsfiddle.net/rsnwvkz3/1/
$(function()
{
$('#table').bootstrapTable()
}
)
//Moment.JS Return Date Ranges
function getDates(startDate, stopDate) {
var dateArray = [];
var currentDate = moment(startDate);
var stopDate = moment(stopDate);
while (currentDate <= stopDate) {
dateArray.push( '"'+moment(currentDate).format('YYYY-MM-DD')+'"' )
currentDate = moment(currentDate).add(1, 'days');
}
return dateArray;
}
$('#ok').click( function()
{
var $table = $('#table')
var from=$("input[type=date][name=date1]" ).val();
var to=$("input[type=date][name=date2]" ).val();
alert(getDates(from,to))
$table.bootstrapTable('filterBy',{ ETA:[getDates(from,to)]})
})
日期数组需要删除双引号和filterBy参数接受一维数组。
例:
$(function() {
$('#table').bootstrapTable()
})
//Moment.JS Return Date Ranges
function getDates(startDate, stopDate) {
var dateArray = [];
var currentDate = moment(startDate);
var stopDate = moment(stopDate);
while (currentDate <= stopDate) {
dateArray.push(moment(currentDate).format('YYYY-MM-DD'))
currentDate = moment(currentDate).add(1, 'days');
}
return dateArray;
}
$('#ok').click(function() {
var $table = $('#table')
var from = $("input[type=date][name=date1]").val();
var to = $("input[type=date][name=date2]").val();
alert(getDates(from, to))
$table.bootstrapTable('filterBy', {
ETA: getDates(from, to)
})
})