#javascript #html #radio-button #addeventlistener #event-listener
#javascript #HTML #переключатель #addeventlistener #прослушиватель событий
Вопрос:
Я использую
document.getElementById('myId').checked = true;
чтобы изменить, какой радиовход / кнопка должны быть проверены.
Он работает нормально, но у меня также есть прослушиватель событий
document.getElementById('myId').onchange = function () {
console.log(this.checked);
};
Проблема в том, что прослушиватель событий запускается, когда я нажимаю радиовход / кнопку, но он не запускается, когда я меняю checked
состояние с помощью кода.
Ответ №1:
Из документации :
Событие изменения происходит, когда элемент управления теряет фокус ввода, и его значение было изменено с момента получения фокуса. Это событие действительно для ввода, ВЫБОРА и ТЕКСТОВОЙ области. элемент.
Таким образом, событие не будет срабатывать при программном изменении значения. Итак, что вы можете сделать, это запустить событие программно, вызывая функцию.
var ele = document.getElementById('myId');
ele.checked = true;
ele.onchange.call(ele);