jQuery UI DatePicker исключить выходные и праздничные дни - PullRequest
0 голосов
/ 17 июня 2020

Мой код исключает даты, назначает настраиваемый класс и заголовок полю даты.

var holidays =[ [2020,06,17,'A Holiday'],[2020,06,18,'Another Holiday'],[2020,06,19,'Some Other Holiday'] ];

function setHolidays(date) {
    for (i = 0; i < holidays.length; i++) {
        if (date.getFullYear() == holidays[i][0]
            && date.getMonth() == holidays[i][1] - 1
            && date.getDate() == holidays[i][2]) {
            return [false, 'holiday', holidays[i][3]];
        }
    }
    return [true, ''];
}

$( ".add_delivery_date").datepicker( {
    minDate: 0, 
    firstDay: 0,
    beforeShowDay: setHolidays
} );

Я знаю, что могу исключить выходные, используя

beforeShowDay: $.datepicker.noWeekends

, но я не уверен как добавить его в существующий код.

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

Это оказалось проще, чем я думал:

function setHolidays(date) {
    for (i = 0; i < holidays.length; i++) {
        if (date.getFullYear() == holidays[i][0]
            && date.getMonth() == holidays[i][1] - 1
            && date.getDate() == holidays[i][2]) {
            return [false, 'holiday', holidays[i][3]];
        }
    }

    var noWeekend = $.datepicker.noWeekends(date);
    return !noWeekend[0] ? noWeekend : [true];
}
0 голосов
/ 17 июня 2020

Вы можете просто передать noWeekends: true.

$( ".add_delivery_date").datepicker( {
    noWeekends: true,
    minDate: 0, 
    firstDay: 0,
    beforeShowDay: setHolidays
} );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...