@Breeze1

Как синхронизировать два air datepicker?

Использую air datepicker в качестве календаря.

На странице есть 2 календаря, их нужно как-то синхронизировать - выбираем дату на одном, автоматом выбирается и на втором.
  • Вопрос задан
  • 252 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Сложить в массив экземпляры picker'ов; в общем обработчике выбора даты устанавливать выбранную дату всем экземплярам и обновлять их. Как-то так:

const pickers = $('селектор элементов, на которых инициализируются экземпляры календаря')
  .datepicker({
    onSelect(formattedDate, date, picker) {
      pickers.forEach(n => n !== picker && (
        n.currentDate = picker.currentDate,
        n.selectedDates = [ date ],
        n.update()
      ));
    },
  })
  .get()
  .map(n => $(n).data('datepicker'));

То же, но для третьей версии:

const options = {
  onSelect({ date, datepicker }) {
    pickers.forEach(n => n !== datepicker && n.update({
      viewDate: datepicker.viewDate,
      selectedDates: [ date ],
    }, {
      silent: true,
    }));
  },
};

const pickers = Array.from(
  document.querySelectorAll('селектор элементов с календарями'),
  n => new AirDatepicker(n, options)
);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы