Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Как в календаре datapicker отключить выборочные даты по формуле? (https://javascript.ru/forum/library-toolkit-framework/81322-kak-v-kalendare-datapicker-otklyuchit-vyborochnye-daty-po-formule.html)

giwuf 09.11.2020 17:30

Как в календаре datapicker отключить выборочные даты по формуле?
 
Есть библиотечка js datapicker
Я по api получаю объект c определенными датами и хочу сделать так, чтобы в выпадающем календаре были доступны только получаемые из с бека.
Как это можно сделать, учитывая, что есть свойство disabler в котором можно отключать глобально дни, месяцы календаря и метод disabledDates для более тонкой настройки в котором можно задавать определенный перечень нужных дат

setTimeout(() => {
if (Values) {
picker = datepicker(datePickerElem, {
disabler: date => {
var datelist = [];
for (var i = 0; i <= 30; i++) {
if (Values[i] == undefined) continue;
for (key in Values[i]) break;
var result = Values[i][key].date;
datelist.push(result);
}
return date.getDay() === datelist;
},
disabledDates: [new Date('2020-11-16'), new Date('2020-11-19')]
}
}
}, 500);

рони 09.11.2020 18:25

js-datepicker рабочие дни из массива дат
 
giwuf,

<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://unpkg.com/js-datepicker"></script>
  <link rel="stylesheet" href="https://unpkg.com/js-datepicker/dist/datepicker.min.css">
</head>

<body>
<input type="text"  class="some-input" >
<script>
let dataApi = [new Date('2020-11-16'), new Date('2020-11-19')];
const picker = datepicker('.some-input', {
  alwaysShow: true,
  disabler: d =>!dataApi.map(v => v.setHours(0)).includes(d.getTime())
})
</script>
</body>
</html>

giwuf 09.11.2020 18:44

Огромное спасибо, рони! Блестяще! :victory:


Часовой пояс GMT +3, время: 16:08.