Событие изменения вызывается, когда (особенно с элементами input
) изменяется value
- поэтому, если вы читаете значение, а затем читаете его после вызова change
, два значения будут разными.
let i = document.querySelector('input')
i.addEventListener('change', e => console.log(e))
i.checked = true //Nothing happened
i.click() //event object is output
<input name="test" type="radio" value="1">
<input name="test" type="radio" value="2">
Ваш код выше не запускает событие сразу, потому что вы clicking
input
- и даже в этом случае, поскольку он уже выбран, value
не изменится, поэтому ничего не произойдет. Если вы удалите часть checked = true
, она сработает, потому что значение изменяется от непроверенного (не заполненного) до отмеченного (заполненного) при click
элементе:
let i = document.querySelector('input')
i.addEventListener('change', e => console.log(e))
i.click() //event object is output
<input name="test" type="radio" value="1">
<input name="test" type="radio" value="2">