使用另一个按钮处理复选框。
如果我直接单击复选框,则会触发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()
方法。
答案 0 :(得分:2)
设置复选框的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>