Почему я не могу добавить прослушиватель событий в цикле? - PullRequest
0 голосов
/ 14 марта 2019
const inputs = document.getElementsByClassName("uk-input")
for (let element of inputs) {
  element.addEventListener("onchange", e => {
    alert("test")
  })
}
console.log(inputs)

Когда я смотрю на вывод последней строки, поле слушателя события onchange является нулевым.Что я делаю не так?

И при вводе в соответствующие поля ввода не выводится окно с предупреждением.

1 Ответ

3 голосов
/ 14 марта 2019

Имя события равно change, а не onchange:

const inputs = document.getElementsByClassName("uk-input")
for (let element of inputs) {
  element.addEventListener("change", e => {
    alert("test")
  })
}
console.log(inputs)

Вы можете использовать onchange при назначении имени свойства изonchange для добавления прослушивателя, например:

const inputs = document.getElementsByClassName("uk-input")
for (let element of inputs) {
  element.onchange = e => {
    alert("test")
  };
}
console.log(inputs);

(но это, вероятно, не очень хорошая идея, поскольку это перезапишет предыдущих прослушивателей, прикрепленных путем присвоения onchange, и будущий код, который может назначитьonchange перезапишет ваш слушатель - лучше использовать addEventListener.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...