@leyarthemes

Как отследить программное изменение значения input для валидации?

Здравствуйте, делаю сложную форму с некоторыми нестандартными полями. Пример такого поля - поле с выпадающим списком (id="itemsInput" и id="choicesInput"). Функция dropdown() работает так как мне нужно (в примере сильно упрощена), но возникают проблемы при валидации функцией validateForm(). Конкретнее, .addEventListener("input", function(){ }); реагирует на изменение значения поля путём нажатия клавиш, но не реагирует никак на изменение поля функцией dropdown(). Мне очень важно, чтобы класс invalid удалялся при клике или ховере на пункт выпадающего списка на лету, но я не знаю как это сделать правильно. Нужен чистый JS, без плагинов и фрейморков. https://jsfiddle.net/q2uL3k57/74/ Вот пример на jsfiddle Спасибо.
  • Вопрос задан
  • 535 просмотров
Решения вопроса 1
byte916
@byte916
У вас валидация происходит по событию input, его вам и нужно вызывать.
inp.dispatchEvent(new Event('input'));
https://jsfiddle.net/c0rL2g9j/
Строки 21, 25
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@medin84
software developer
Можно переписать set, get для value input-a
https://codesandbox.io/s/oxyxn93n6
Ответ написан
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
Ну, если совсем грубо, то так - https://jsfiddle.net/Lgmc3sz1/
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы