Я использую этот инструмент выбора даты, и он мне нравится, но он не вызывает событие изменения на входе после того, как я нажимаю дату.
Вот мой код
Я тестировал это на jsFiddle
const elem = document.querySelector('input[name = "foo"]');
const datepicker = new Datepicker(elem, {
autohide: true,
todayHighlight: true,
format: "yyyy-mm-dd",
});
elem.addEventListener("change", function(e) {
console.info(e.target.value);
});
<link rel = "stylesheet" href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/datepicker.min.css">
<script src = "https://cdn.jsdelivr.net/npm/[email protected]/dist/js/datepicker-full.min.js"></script>
<input type = "text" name = "foo">
Когда я нажимаю конкретную дату в средстве выбора даты, событие изменения не запускается.
Мне нужна помощь с этим.
Я также использую его с livewire и alpine, но после нажатия даты изменение даже не срабатывает. вот мой код на Laravel
Когда я тестировал Pickaday, он работал.
Как я могу обойти это или сделать так, чтобы изменения инициировались даже в vanillajs datepicker.
Заранее спасибо.
ОК, я думал, что делаю что-то не так, есть ли способ самому вызвать событие, например, установить значение вручную, чтобы событие можно было запустить.
Ваша библиотека не запускает собственное событие, такое как onchange
, поэтому оно не работает. Вместо этого вам нужно использовать пользовательское событие библиотеки.
Информация в документации изменить
const elem = document.querySelector('input[name = "foo"]');
const datepicker = new Datepicker(elem, {
autohide: true,
todayHighlight: true,
format: "yyyy-mm-dd",
});
elem.addEventListener("changeDate", function (e) {
console.info(e.target.value);
});
<link rel = "stylesheet" href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/datepicker.min.css">
<script src = "https://cdn.jsdelivr.net/npm/[email protected]/dist/js/datepicker-full.min.js"></script>
<input type = "text" name = "foo">
НП, рад быть полезным
Datepicker
не запускает собственное событие onchange