您需要跟踪复选框状态的变化,以防使用 JS 更改此状态。没想到,我发现在这样的条件下,事件change并没有发出
const checkbox = document.getElementById('box');
const btn = document.getElementById('btn');
btn.addEventListener('click', ()=>{
checkbox.checked = !checkbox.checked;
})
checkbox.addEventListener('change', ()=>{
console.log("Состояние чекбокса изменнено")
})
<input id='box' type="checkbox">
<button id="btn">Click</button>
您可以
checked使用Object.defineProperty覆盖属性的设置器。一般来说,在一般情况下,是无法访问html元素的原型的,但这里竟然是作弊拉
click取条件,结果如下