Vanillajs-datepicker не устанавливает входное значение, событие изменения не запускается при нажатии даты

Я использую этот инструмент выбора даты, и он мне нравится, но он не вызывает событие изменения на входе после того, как я нажимаю дату.

Вот мой код
Я тестировал это на 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
Vanillajs-datepicker не устанавливает входное значение, событие изменения не запускается при нажатии даты

Когда я тестировал Pickaday, он работал.

Как я могу обойти это или сделать так, чтобы изменения инициировались даже в vanillajs datepicker.

Заранее спасибо.

Datepicker не запускает собственное событие onchange
Chris G 23.04.2024 19:45

ОК, я думал, что делаю что-то не так, есть ли способ самому вызвать событие, например, установить значение вручную, чтобы событие можно было запустить.

raliqala 23.04.2024 19:52
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
2
106
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваша библиотека не запускает собственное событие, такое как 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">

НП, рад быть полезным

Chris G 23.04.2024 20:00

Другие вопросы по теме