我努力工作 - 我得到一個'Uncaught TypeError:無法讀取屬性'0'未定義的錯誤與下面,我不明白爲什麼!jquery UI datepicker - 禁用日期範圍
我想在假日小屋的網站上使用jQuery UI datepicker來指示可用性和季節(低,高等)。我有一個作爲datePicker事件的函數來檢查是否有日期預訂,如果沒有,我然後出去檢查我們在哪個季節(非旺季預訂可以在星期一或星期五進行預訂。在旺季,它只是星期五。)
我使用cms生成一些日期數組(通過循環),然後我可以在構建日曆時迭代,所以javascript有點冗長。
該陣列是這樣的:
<script>
//Peak Season 1 2011
var ps1 = new Date('June 17, 2011');
var pe1 = new Date('September 2, 2011');
//Peak Season 2 2011
var ps2 = new Date('December 19, 2011');
var pe2 = new Date('January 6, 2012');
// season start and end date arrays
var peakStart = new Array(ps1,ps2);
var peakEnd = new Array(pe1,pe2);
// Bookings
//Mr & Mrs Smith
var cbs1 = new Date('May 27, 2011');
var cbe1 = new Date('June 5, 2011');
//Mr & Mrs Jones
var cbs2 = new Date('September 1, 2011');
var cbe2 = new Date('September 18, 2011');
var cottageStart = new Array(cbs1,cbs2);
var cottageEnd = new Array(cbe1,cbe2);
// last date of season - don't book past here
var lastDate = '01/06/2012';
</script>
我有以下的功能,我從beforeShowDate事件調用所要檢查的預訂陣列日曆日期:
$('#cottageCal').datepicker({
minDate: '0d',
maxDate: lastDate,
beforeShowDay: function(date) {
$.each(cottageStart, function(key, value) {
//alert (((date >= value) && (date <= value)) ? 'booked' : 'notbooked');
if ((date >= value) && (date <= value)) {
return [false, 'booked'];
} else {
return checkPeak(date);
}
});
}
});
最後,checkPeak從這裏調用的函數看起來像這樣:
var checkPeak = function(date) {
var day = date.getDay();
var month = date.getMonth();
$.each(peakStart, function(key, value) {
if ((date > value) && (date < value)) {
/* december peak bookings on monday*/
if (month != 11) {
return [(day == 5), ''];
} else {
return [(day == 1), ''];
}
}
if (month == 0) {
return false;
} else {
// it's not during a peak period
return [(day == 1 || day == 5), ''];
}
});
}
我必須b e在這裏做一些根本性的錯誤,但我看不到什麼!
究竟哪裏出錯?你使用'console.log'一步一步地調試代碼 – diEcho 2011-02-25 11:11:15
我在beforeShowDay事件後得到了'Uncaught SyntaxError:意外的標識符' – BellamyStudio 2011-02-25 13:21:50