我网站上有一个预订可用性检查部分,我使用了
当我更改月份时,我会收到json响应,但是datepicker上的日期没有被禁用。我尝试使用
bootstrap datepicker
。当页面首次加载时,我使用jquery ajax和php从数据库中获取一些日期来禁用datepicker日历上的日期。因此,我使用了setDatesDisabled
。datepicker第一次加载时它可以正常工作。当我更改月份时,我会收到json响应,但是datepicker上的日期没有被禁用。我尝试使用
changeMonth
事件,但不起作用。请帮助我解决这个问题。
Json响应
disableDates:["13.01.2018", "20.01.2018", "27.01.2018"]
$("#dateFrom").datepicker({
autoclose: true,
todayHighlight: true,
format: 'dd.mm.yy',
startDate: new Date()
}).on('show', function(e) {
$.ajax({
url: '/cabinowner/bookings/availability',
dataType: 'JSON',
type: 'POST'
})
.done(function( response ) {
$("#dateFrom").datepicker('setDatesDisabled', response.disableDates);
})
.fail(function(response, jqxhr, textStatus, error) {
});
});
$("#dateFrom").datepicker().on('changeMonth', function(e) {
$.ajax({
url: '/cabinowner/bookings/availability',
dataType: 'JSON',
type: 'POST',
data: { date : moment(e.date).format('YY-MM-DD') }
})
.done(function( response ) {
// here response is getting but next month is not showing
$("#dateFrom").datepicker('setDatesDisabled', response.disableDates);
})
.fail(function(response, jqxhr, textStatus, error) {
});
});
$("#dateFrom").datepicker().on('changeDate', function(e) {
var temp = $(this).datepicker('getDate');
var start = new Date(temp);
start.setDate(start.getDate() + 1); // Here date is setting greater than start date
var end = new Date(start);
end.setDate(end.getDate() + 60);
$("#dateTo").datepicker({
autoclose: true,
format: 'dd.mm.yy',
startDate: start,
endDate: end
});
});