使用AJAX的Datepicker beforeShowDay

时间:2012-03-02 16:54:22

标签: javascript jquery datepicker

我有这个功能:

$( "#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。

我有什么遗失的吗?

1 个答案:

答案 0 :(得分:-1)

$ .ajax是异步的,这意味着yesDate将始终返回false,因为$ .ajax的成功函数将在响应从服务器返回后被调用。

你可以让你的ajax调用同步,但这是一个坏主意。

你应该做的是在页面加载时找出哪些天被允许,哪些天没有,然后将它存储在某种数组或对象中。然后你可以使用那个数组/对象来确定哪些天是允许的,哪些天不是。