2012-04-02 43 views
0

這裏是我的jQuery代碼:日期選擇不填充日期正確

var unavailableDates = ["28-06-2011","22-12-2011","22-10-2011","22-02-2012", 
          "21-10-2011","21-07-2011","19-10-2011","18-11-2011", 
          "18-10-2011","18-05-2011","18-04-2011","17-12-2010", 
          "17-10-2011","14-10-2011","13-02-2012","12-11-2011", 
          "12-04-2011","09-12-2011","09-05-2011","09-02-2012", 
          "07-11-2011","07-03-2012","05-07-2011","03-05-2011", 
          "02-12-2011","01-11-2011","01-08-2011","01-06-2011"]; 


function unavailable(date) { 
    dmy = date.getDate() + "-"+ (date.getMonth() + 1) +"-" + date.getFullYear(); 
    if ($.inArray(dmy, unavailableDates) == -1) { 
     return [false, "Unavailable"]; 
    } else { 
     return [true, "", ""]; 
    } 
} 

$(function() { 
$("#iDate").datepicker({ 
    dateFormat: 'yy-mm-dd', 
    beforeShowDay: unavailable, 
    onSelect: function (dateText, inst) { 
     $('#frmDate').submit(); 
    } 
    }); 
}); 

出於某種原因,它填充了一些來自陣列的一些日期的日期選擇器控制的,但忽略其他。我不知道爲什麼這樣做。

有人可以幫忙嗎?

謝謝。

+0

我懷疑這可能是日期格式/解釋問題:「DD-MM-YYYY」與「MM-DD-YYYY」。 – 2012-04-02 14:48:16

+0

是的,它似乎不喜歡以下格式的日期:01-06-2011例如0位於月份之前數字....但我不明白爲什麼這是一個問題時,我已經定義格式爲dateFormat:'yy-mm-dd' – bobo2000 2012-04-02 15:04:13

+0

如何讓datepicker接受該格式? – bobo2000 2012-04-02 15:07:12

回答

1

不可用()包含錯誤的邏輯。當getDate()和getMonth()返回單個數字時,您嘗試查找數組中不存在的日期。例如,您搜索「1-8-2011」而不是「01-08-2011」。 一個解決方案是在必要時用零填充日期零件。

JsFiddle example

+0

謝謝你,這真的讓我瘋狂! – bobo2000 2012-04-02 16:27:06

相關問題