【发布时间】:2015-02-04 19:04:42
【问题描述】:
我正在为我的日历使用 jQuery UI 日期选择器。我使用了 beforeShowDay 功能来阻止不可用的日子。此数据来自 AJAX 调用,成功后我会填充日历。
这很好用,但是我想在每次日期不可用时更新日期选择器,但我无法让日期选择器刷新。我希望能够调用一个函数,例如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 ];
}
});
}
});
}
用户界面示例:
感谢您的帮助
【问题讨论】:
-
这个 jsFiddle 有帮助吗? jsfiddle.net/28NWZ/10
-
var dateField = $('#datepicker'); dateField.datepicker('刷新');应该刷新日期选择器中的日期。
-
@Dave 日历一直显示,而不仅仅是在输入焦点时显示。将用户界面的屏幕截图添加到原始帖子中。
-
遵循这个问题中使用的模式:stackoverflow.com/questions/9480537/…
标签: jquery ajax jquery-ui datepicker jquery-ui-datepicker