Метод clear используется для программного сброса
выбранного значения даты в экземпляре календаря. Он работает
непосредственно с внутренним состоянием компонента и очищает текущее
значение, установленное пользователем или заданное программно.
В отличие от ручного изменения значения input-поля, вызов
clear гарантирует синхронное обновление всех внутренних
структур библиотеки, включая состояние выбранной даты, отображение UI и
связанные события.
При вызове clear происходит несколько операций:
selectedDates);input.value);Важно, что метод не уничтожает экземпляр календаря и не сбрасывает конфигурацию. Он работает только с текущим выбором.
Метод вызывается на экземпляре Flatpickr:
instance.clear()
где instance — объект, возвращаемый при инициализации
календаря.
Пример:
const fp = flatpickr("#date", {
dateFormat: "Y-m-d"
});
fp.setDate("2026-06-01");
fp.clear();
После выполнения clear поле ввода становится пустым, а
внутренний список выбранных дат очищается.
Прямое изменение значения поля:
document.querySelector("#date").value = "";
не приводит к полной синхронизации состояния Flatpickr. В таком случае:
selectedDates может остаться прежним;Метод clear устраняет эти несоответствия, работая через
внутренний API.
При вызове clear могут срабатывать события, связанные с
изменением значения:
onChange — вызывается при очистке значения;onValueUpdate — отражает обновление внутреннего
значения;onDayCreate не вызывается, так как структура календаря
не пересоздаётся.Пример конфигурации:
flatpickr("#date", {
onChange: function(selectedDates, dateStr, instance) {
console.log("Изменение:", dateStr);
}
});
После вызова:
instance.clear();
onChange будет вызван с пустым значением.
В стандартном режиме:
flatpickr("#date", {
mode: "single"
});
clear полностью удаляет выбранную дату и возвращает
пустое состояние.
flatpickr("#date", {
mode: "range"
});
В режиме диапазона очищаются обе границы:
UI возвращается в исходное состояние без выделения диапазона.
flatpickr("#date", {
mode: "multiple"
});
В этом случае метод удаляет все элементы массива
selectedDates.
defaultDateЕсли в конфигурации задано:
flatpickr("#date", {
defaultDate: "2026-06-01"
});
вызов clear не изменяет defaultDate. Это
ключевой момент:
defaultDate остаётся неизменным;clear влияет только на текущий выбор;setDate.clear и
setDate(null)Оба подхода могут использоваться для очистки, но поведение различается.
clear()setDate(null)instance.setDate(null);
Внутренне clear считается более стабильным и
предпочтительным методом.
allowInputПри включённой опции:
flatpickr("#date", {
allowInput: true
});
пользователь может вручную вводить значение. В этом случае
clear:
flatpickr("#date", {
inline: true
});
В inline-режиме календарь всегда отображается на странице.
clear в этом случае:
При включённом времени:
flatpickr("#date", {
enableTime: true
});
clear удаляет не только дату, но и:
Поле возвращается к пустому значению без временной составляющей.
minDate и maxDateОграничения диапазона не влияют на работу clear.
flatpickr("#date", {
minDate: "2026-01-01",
maxDate: "2026-12-31"
});
После очистки:
form.addEventListener("reset", () => {
instance.clear();
});
Метод часто используется в связке с HTML-формами, чтобы гарантировать полное очищение состояния календаря.
if (!isValidRange) {
instance.clear();
}
Применяется при валидации пользовательского ввода или бизнес-логике.
instance.clear();
instance.setDate("2026-06-10");
Такой подход используется для принудительного перезаписывания состояния без накопления старых значений.
При вызове clear библиотека:
selectedDates;latestSelectedDateObj;input.value;При этом экземпляр остаётся активным, а DOM-структура не пересоздаётся.
Если на странице несколько календарей:
const fp1 = flatpickr("#date1");
const fp2 = flatpickr("#date2");
clear действует строго локально:
fp1.clear();
не затрагивает fp2, так как состояние каждого экземпляра
изолировано.
input.value = "" вместо
clear;defaultDate будет сброшен;clear до инициализации экземпляра;destroy, что приводит к потере
инстанса.clear часто используется вместе с:
setDate — для переустановки значения;open / close — для управления UI после
очистки;destroy — в сценариях полного удаления компонента.Пример цепочки:
instance.clear();
instance.close();
Если clear вызывается в асинхронном коде:
setTimeout(() => {
instance.clear();
}, 1000);
состояние очищается корректно независимо от предыдущих пользовательских действий, так как метод работает с текущим внутренним состоянием, а не с DOM напрямую.