[英]how to get(or trigger) change event when input[checkbox or radio buttons] is changed using javascript
我有以下设置,当我通过点击标签或复选框本身选中/取消选中复选框时,触发了更改事件,
但是当我尝试使用javascript来检查/取消选中该复选框时,通过clciking按钮,复选框将选中或取消选中但更改事件不会触发。
请checke下面的代码
var checkbox=document.getElementById("check"); checkbox.addEventListener("change",function(){window.alert("change event")}) document.getElementsByTagName("button")[0].addEventListener("click",function(){ checkbox.checked ? checkbox.checked=false : checkbox.checked=true; })
<label><input type=checkbox id=check>this is label</label><br> <button>toggle checkbox</button>
为什么是这样? 以及如何使用javascript更改时获取更改事件。
为什么那三元条件? 只需使用checkbox.click();
就如此容易。 它将切换检查/取消选中以及触发change
事件。
var checkbox = document.getElementById("check"); checkbox.addEventListener("change", function() { window.alert("change event") }) document.getElementsByTagName("button")[0].addEventListener("click", function() { checkbox.click(); })
<label><input type=checkbox id=check>this is label</label><br> <button>toggle checkbox</button>
好吧,你可以将你的逻辑分成另一个函数,然后在“更改”复选框和“单击”按钮时触发该功能。
var checkbox = document.getElementById("check");
checkbox.addEventListener("change", function() {
yourFunction()
});
document.getElementsByTagName("button")[0].addEventListener("click", function() {
checkbox.checked ? checkbox.checked = false : checkbox.checked = true;
yourFunction()
});
function yourFunction() {
window.alert("change event")
}
这不能解决你的问题吗? 我确实相信Ankit Agarwal的答案与你原来的意图更好地对齐。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.