2013-11-28 178 views
0

我有一個用於旅遊預訂的jQuery Datepicker日曆。 一週中的某些天不適用於預訂,但這些截止日期取決於月份(季節)。因此,例如12月份除了星期天外,每天都可以使用,11月份根本不可用,4月份每週三,週五和週日都不可用。這工作到目前爲止。jQuery Datepicker如何將日期數組添加到beforeShowDay

我現在想要添加一個固定的日期數組,應該被阻止(例如:2013年12月13日,2013年11月12日),但我努力讓它工作。

這裏是我當前的代碼:

$("#tripDate").datepicker({ 
    numberOfMonths: 2, 
    showButtonPanel: true, 
    dateFormat: 'dd.mm.yy', 
    firstDay: 1, 
    minDate: +2, 
    showOn: "both", 
    buttonImage: "images/cal.png", 
    buttonImageOnly: true, 
    beforeShowDay: function unavailable(date) { 
     var year = date.getYear(); 
     var day = date.getDay(); 
     var month = date.getMonth(); 
     if (month == 10) { 
      return [(day == 8)]; 
     } else if (month == 3 || month == 4 || month == 5 || month == 8 || month == 9) { 
      return [(day != 3 && day != 5 && day != 0)]; 
     } else { 
      return [(day != 0)]; 

     } 
    } 
}); 

回答

1

嘗試

var array = ['07.12.2013', '11.12.2013']; 
$("#tripDate").datepicker({ 
    numberOfMonths: 2, 
    showButtonPanel: true, 
    dateFormat: 'dd.mm.yy', 
    firstDay: 1, 
    minDate: +2, 
    showOn: "both", 
    buttonImage: "images/cal.png", 
    buttonImageOnly: true, 
    beforeShowDay: function unavailable(date) { 
     var f = $.datepicker.formatDate('dd.mm.yy', date) 
     var year = date.getYear(); 
     var day = date.getDay(); 
     var month = date.getMonth(); 
     if ($.inArray(f, array) > -1) { 
      return [false]; 
     } else if (month == 10) { 
      return [(day == 8)]; 
     } else if (month == 3 || month == 4 || month == 5 || month == 8 || month == 9) { 
      return [(day != 3 && day != 5 && day != 0)]; 
     } else { 
      return [(day != 0)]; 

     } 
    } 
}); 

演示:Fiddle

+0

親愛的阿倫,感謝您的建議 - 這是快速的極端! 太棒了 - 完美無瑕! – darneson

+0

有沒有辦法顯示日曆小部件之外的啓用日期和禁用日期?我想從明天開始顯示未來7天的所有日子,然後設置顏色和文本。可用天數爲綠色,文字「可用」,不可用天數爲紅色,「不可用」。這是否有可能?提前致謝 ;) – darneson

相關問題