Bootstrap Table Filterby,按日期范围过滤,不显示任何内容

问题描述 投票:0回答:1

目前使用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)]}) 



})
javascript html datatables
1个回答
1
投票

日期数组需要删除双引号和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)
    })



})
© www.soinside.com 2019 - 2024. All rights reserved.