我有这个功能:
$( "#datepicker" ).datepicker({
minDate: 0,
dateFormat: 'yy-mm-dd',
beforeShowDay: function(date){
var yesDate = false;
dataString = 'selected_date='+ date;
$.ajax({
type: "POST",
url: "<?php echo site_url('/event_calendar/event_widget') ?>",
data: dataString,
success: function(data) {
if(data != '<li>Sorry there are not any events for the selected date.</li>'){
yesDate = true;
}
}
});
return [yesDate,""];
}
});
我正在尝试让日历只在数据库中显示日期并禁用其余部分似乎“yesDate”永远不会设置为true,而是始终设置为默认的false。
我有什么遗失的吗?
答案 0 :(得分:-1)
$ .ajax是异步的,这意味着yesDate将始终返回false,因为$ .ajax的成功函数将在响应从服务器返回后被调用。
你可以让你的ajax调用同步,但这是一个坏主意。
你应该做的是在页面加载时找出哪些天被允许,哪些天没有,然后将它存储在某种数组或对象中。然后你可以使用那个数组/对象来确定哪些天是允许的,哪些天不是。