Я новичок, использующий средство выбора даты jQuery UI на коммерческом сайте для установки даты отгрузки.Я хочу заполнить поле ввода даты первой действительной датой доставки, которая определяется как:
- позже, чем сегодня;и
- в понедельник или во вторник
(Есть другие условия, но я их пока игнорирую.)
Когда я пишу это, ив течение следующих нескольких дней правильное значение этой даты - 8/8/2011.
Вот страница:
http://www.lolacookies.com/gifts/
Вот мой код,который не работает.Комментируемая часть - то, что должно делать работу.Значение входа не устанавливается вообще;в предыдущих попытках дата была установлена на значение minDate, но не на любое другое значение.
$(document).ready(function(){
$(".datepicker").datepicker({
beforeShowDay: nonWorkingDates,
hideIfNoPrevNext: true,
numberOfMonths: 1,
minDate: "+1d",
maxDate: "+3M",
showAnim: "blind",
showOn: "both",
buttonImage: "/images/misc/calendar.png",
buttonImageOnly: true,
buttonText: "Select a date"
});
//set firstShippingDate to value of minDate
//we don't ship on same day, so minDate is today + 1d
var firstShippingDate = $( ".datepicker" ).datepicker( "option", "minDate" );
//we ship only on Monday and Tuesday, so test for that
var dayOfWeek = firstShippingDate.getDay();
//if it's not Monday or Tuesday, advance firstShippingDate by one day and test again
while ( dayOfWeek == 0 || dayOfWeek == 3 || dayOfWeek == 4 || dayOfWeek == 5 || dayOfWeek == 6 )
{
firstShippingDate.setTime(firstShippingDate.getTime() + 86400000);
dayOfWeek = firstShippingDate.getDay();
};
//should exit loop with firstShippingDate set to first Monday or Tuesday that's not today
//set datepicker to that firstShippingDate
$(".datepicker").datepicker( "setDate" , firstShippingDate );
function nonWorkingDates(date){
var day = date.getDay(), Sunday = 0, Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, Friday = 5, Saturday = 6;
var closedDates = [[06, 27, 2011], [06, 28, 2011], [06, 29, 2011], [07, 04, 2011]];
var closedDays = [[Sunday], [Wednesday], [Thursday], [Friday], [Saturday]];
for (var i = 0; i < closedDays.length; i++) {
if (day == closedDays[i][0]) {
return [false];
}
}
for (i = 0; i < closedDates.length; i++) {
if (date.getMonth() == closedDates[i][0] - 1 &&
date.getDate() == closedDates[i][1] &&
date.getFullYear() == closedDates[i][2]) {
return [false];
}
}
return [true];
}
});