我正在使用jQuery UI datepicker作为我的日历。我使用了beforeShowDay函数来阻止不可用的日子。这些数据来自一个AJAX调用,当成功时我会填充日历。
这很好用,但是我想在每次日期不可用时更新datepicker但是我无法刷新datepicker。我希望能够调用一个函数,例如getdates(0);
并且日期选择器会更新。
请参阅以下功能代码:
function getdates(duration) {
$.getJSON(pluginUrl+"ajax/getdates.php?duration="+duration, function( data ) {
if(data['success'] == 1){
console.log("here");
var nonWorking = data['non_working_days'];
var nonWorkingDates = data['non_working_dates'];
var fullyBookedDates = data['fully_booked_dates'];
jQuery("#datepicker").datepicker({
minDate: 0,
maxDate: "+2m",
beforeShowDay: function(date){
var string = jQuery.datepicker.formatDate('yy-mm-dd', date);
var day = date.getDay();
var status = true;
if(nonWorking.indexOf(day) >= 0){
var status = false;
}
if(nonWorkingDates.indexOf(string) >= 0){
var status = false;
}
if(fullyBookedDates.indexOf(string) >= 0){
var status = false;
}
console.log('in here');
return [ status ];
}
});
}
});
}
UI示例:
感谢您的帮助
答案 0 :(得分:3)
您应该在处理新数据之前重置日期选择器吗?
jQuery("#datepicker").datepicker( "option" , {
minDate: null,
maxDate: null}
);
或者只是彻底销毁它并重新开始:
jQuery("#datepicker").datepicker("destroy");