Pikaday ошибка с массивом disableDayFn для удаления определенных дней - PullRequest
0 голосов
/ 04 июня 2019

Я использую Pikaday datepicker. Все работает хорошо, но для некоторых сложных манипуляций с датами мне нужно добавить / удалить несколько дат.

<code>
var start_date = new Pikaday({
    disableDayFn: function(date) {
        var enabled_dates = ["06/11/2019","06/17/2019","06/24/2019"]; // dates I want to enable.
        var disabled_dates = ["06/15/2019", "06/22/2019"]; // dates I want to disable.

        if ((date.getDay() === 1 || date.getDay() === 2 || ($.inArray(moment(date).format("MM/DD/YYYY"), disabled_dates) === 0)) && $.inArray(moment(date).format("MM/DD/YYYY"), enabled_dates) === -1) {
          return date;
        }
    },
    format: 'MM/DD/YYYY',
    field: document.getElementById('start_date'),
});
</code>

В этом примере выше:

  1. [это отлично работает] Я использую массив enabled_dates для включения нескольких дат, которые мне нужно отображать в календаре.

  2. [это прекрасно работает] Я удаляю ВСЕ понедельники и вторники, используя фактическое значение дня '1' и '2', например: date.getDay () === x

  3. [не работает], когда я пытаюсь передать несколько дат в массиве, первая дата удаляется, но последующие даты не обрабатываются.

В этом примере все хорошее, за исключением даты «22.06.2009», не удаляемой, так как появляется, удаляет только первую дату в массиве, а не последующую

Демонстрация скрипки: http://jsfiddle.net/netfast/k36nhacz/18/

...