В библиотеке Flatpickr события реализованы через систему callback-хуков, которые позволяют перехватывать ключевые моменты жизненного цикла календаря: инициализацию, открытие, закрытие, изменение даты, смену месяца и года, а также рендеринг отдельных дней. Все события передаются через конфигурационный объект при инициализации и получают единый контекст выполнения — экземпляр календаря и связанные с ним данные.
Срабатывает один раз после полной инициализации календаря и построения DOM-структуры.
Сигнатура:
onReady: function(selectedDates, dateStr, instance) {}
Параметры:
selectedDates — массив выбранных дат в формате
DatedateStr — строковое представление текущего
значенияinstance — экземпляр FlatpickrОсобенности:
Основное событие изменения значения даты.
Сигнатура:
onChange: function(selectedDates, dateStr, instance) {}
Параметры:
selectedDates — массив выбранных датdateStr — строка в формате, заданном в
dateFormatinstance — текущий экземпляр календаряПоведение:
setDate,
если не указан флаг triggerChangeТипичное применение:
Срабатывает при открытии календаря.
Сигнатура:
onOpen: function(selectedDates, dateStr, instance) {}
Особенности:
Контекст: DOM календаря уже создан, но пользовательский фокус только устанавливается
Срабатывает при закрытии календаря.
Сигнатура:
onClose: function(selectedDates, dateStr, instance) {}
Применение:
Особенности:
Срабатывает при смене месяца (включая навигацию стрелками или программное изменение).
Сигнатура:
onMonthChange: function(selectedDates, dateStr, instance) {}
Когда вызывается:
Использование:
Срабатывает при изменении года.
Сигнатура:
onYearChange: function(selectedDates, dateStr, instance) {}
Поведение:
Типовые сценарии:
Срабатывает при любом обновлении значения, включая программные изменения.
Сигнатура:
onValueUpdate: function(selectedDates, dateStr, instance) {}
Отличие от onChange:
onChange ориентирован на пользовательский вводonValueUpdate реагирует на любое изменение
состоянияСценарии использования:
Срабатывает при создании каждого элемента дня в календарной сетке.
Сигнатура:
onDayCreate: function(dObj, dStr, fp, dayElem) {}
Параметры:
dObj — дата объекта DatedStr — строковое представление датыfp — экземпляр FlatpickrdayElem — DOM-элемент конкретного дняОсобенности:
Применение:
Срабатывает перед позиционированием календаря на странице.
Сигнатура:
onPreCalendarPosition: function(selectedDates, dateStr, instance) {}
Назначение:
Использование:
События Flatpickr не изолированы и часто образуют цепочки:
onReady → первичная инициализацияonOpen → подготовка UIonMonthChange / onYearChange → обновление
сеткиonDayCreate → пост-обработка каждого дняonChange → пользовательский выборonValueUpdate → финальная синхронизация состоянияonClose → завершение взаимодействияПорядок выполнения может варьироваться в зависимости от способа изменения состояния (пользовательский ввод или API-вызовы).
Все события получают общий контекст через instance,
который содержит:
setDate, open,
close, jumpToDate)Через этот объект осуществляется полное управление состоянием компонента, что делает систему событий Flatpickr централизованной и предсказуемой при корректной архитектуре обработки.