Javascript jQuery UI datepicker-禁用公共假日、周末、上午10点后的第二天,并且只允许星期二、星期三和星期四作为可选日期
如果在上午10点之后选择,我将使用中的代码禁用周末、公共假日和第二天,但我一直无法确定如何只允许选择星期二、星期三和星期四Javascript jQuery UI datepicker-禁用公共假日、周末、上午10点后的第二天,并且只允许星期二、星期三和星期四作为可选日期,javascript,jquery,jquery-ui,datepicker,jquery-ui-datepicker,Javascript,Jquery,Jquery Ui,Datepicker,Jquery Ui Datepicker,如果在上午10点之后选择,我将使用中的代码禁用周末、公共假日和第二天,但我一直无法确定如何只允许选择星期二、星期三和星期四 // dates var dateMin = new Date(); var weekDays = AddWeekDays(1); dateMin.setDate(dateMin.getDate() + weekDays); var natDays = [ [1, 1, 'uk'], [12, 25, 'uk'], [12, 26, 'uk'] ]; funct
// dates
var dateMin = new Date();
var weekDays = AddWeekDays(1);
dateMin.setDate(dateMin.getDate() + weekDays);
var natDays = [
[1, 1, 'uk'],
[12, 25, 'uk'],
[12, 26, 'uk']
];
function noWeekendsOrHolidays(date) {
var noWeekend = $j.datepicker.noWeekends(date);
if (noWeekend[0]) {
return nationalDays(date);
} else {
return noWeekend;
}
}
function nationalDays(date) {
for (i = 0; i < natDays.length; i++) {
if (date.getMonth() == natDays[i][0] - 1 && date.getDate() == natDays[i][1]) {
return [false, natDays[i][2] + '_day'];
}
}
return [true, ''];
}
function AddWeekDays(weekDaysToAdd) {
var mydate = new Date();
if (mydate.getHours()>=10)
var daysToAdd = 1;
else var daysToAdd = 0;
var day = mydate.getDay()
weekDaysToAdd = weekDaysToAdd - (5 - day)
if ((5 - day) < weekDaysToAdd || weekDaysToAdd == 1) {
daysToAdd = (5 - day) + 2 + daysToAdd
} else { // (5-day) >= weekDaysToAdd
daysToAdd = (5 - day) + daysToAdd
}
while (weekDaysToAdd != 0) {
var week = weekDaysToAdd - 5
if (week > 0) {
daysToAdd = 7 + daysToAdd
weekDaysToAdd = weekDaysToAdd - 5
} else { // week < 0
daysToAdd = (5 + week) + daysToAdd
weekDaysToAdd = weekDaysToAdd - (5 + week)
}
}
return daysToAdd;
}
$j('.input-text.addon.addon-custom').datepicker({
beforeShowDay: noWeekendsOrHolidays,
minDate : dateMin,
defaultDate: +1,
firstDay: 1,
changeFirstDay: true,
dateFormat: "DD, dd MM yy"
});
任何帮助都将不胜感激
在这里拨弄:在datepicker函数中,添加如下选项
jQuery('#datepicker').datepicker({
minDate: dateMin,
defaultDate: +1,
firstDay: 1,
changeFirstDay: true,
dateFormat: "DD, dd MM yy",
beforeShowDay: function(day){
if (day.getDay()<2 || day.getDay()>4){
return [false, ""];
}
return noWeekendsOrHolidays(day);
}
});
这是最新的小提琴:如果我没听错,你需要排除星期二、星期三和星期四以外的任何一天吗?如果答案为“是”,则应将以下代码添加到现有的noWeekendsOrHolidays方法中:
($.inArray(date.getDay(), [2, 3, 4]) != -1)
这里是更新的JSFIDLE