2012-03-02 74 views
0

我有這樣的功能:日期選擇器beforeShowDay與AJAX

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

$ .ajax是異步的,這意味着yesDate將始終返回false,因爲$ .ajax的成功函數將在響應從服務器返回後調用。

你可以使你的ajax調用同步,但這是一個壞主意。

真的,你應該做的是在頁面加載找出哪些日子是允許的,哪些不是,然後存儲在一個數組或對象o某種。然後你可以使用該數組/對象來確定哪些日子是允許的,哪些不是。

+0

如果這些允許的日期必須在頁面加載後發生變化而又無法重新加載,該怎麼辦? – 2014-08-06 20:51:22

相關問題