使用另一个按钮处理复选框。
如果我直接点击复选框,则会触发 onchange。
但是当我使用按钮更改复选框时,不会调用 onchange(即 show() 方法)。
var checkbox=document.getElementById("x");
var button=document.getElementById("y");
button.addEventListener("click",function(){
checkbox.checked== true
?checkbox.checked=false
:checkbox.checked=true;
})
var show=function(){
window.alert("onchange called");
}
<input type='checkbox' name='xyz' id='x' onchange="show()">
<br>
<button id='y'>Toggle Checkbox</button>
如果单击按钮,如何调用 show()
方法。
最佳答案
设置复选框的 checked
属性不会触发该复选框的 change
事件。您必须自己发送:
y.addEventListener('click', (e) => {
// toggle the checkbox
x.checked = !x.checked;
// and manually dispatch a change event on the checkbox
let change = new Event('change');
x.dispatchEvent(change);
})
x.addEventListener('change', (e) => {
console.log(x.checked);
})
<input type='checkbox' name='xyz' id='x' />
<br>
<button id='y'>Toggle Checkbox</button>
关于javascript - 为什么使用 checked 属性更改复选框时不调用 onchange 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52481530/