Как отследить изменение input, почему change не срабатывает?

Как отследить изменение input? События click и keydown - не вариант.
<form id="a">
  <input type="text" id="b" readonly onchange="update(this.value)">
</form>

let form = document.getElementById('a');
let input = document.getElementById('b');

form.addEventListener('change', () => { console.log('refresh'); });
input.addEventListener('click', () => { input.value += '5'; });
input.addEventListener('change', () => { console.log('reload'); });

function update(c){
  console.log(c);
  console.log(input.value);  
}


https://codepen.io/workcode/pen/NWNZejw
  • Вопрос задан
  • 13871 просмотр
Пригласить эксперта
Ответы на вопрос 2
@V0vash


input.addEventListener('input', () => { input.value += '5'; });
Ответ написан
Tim-A-2020
@Tim-A-2020
Событие change для текстовых элементов произойдёт не при каждом вводе, а при потере фокуса поэтому воспользуйтесь событием input. Событие input срабатывает тут же при изменении значения текстового элемента
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы