使用javascript更改输入[复选框或单选按钮]时如何获取(或触发)更改事件
我有如下设置,当我通过单击标签或复选框本身选中/取消选中复选框时,会触发更改事件 但当我尝试使用javascript(比如通过点击按钮)选中/取消选中复选框时,复选框将选中或取消选中,但更改事件不会触发 请检查下面的代码使用javascript更改输入[复选框或单选按钮]时如何获取(或触发)更改事件,javascript,html,events,onchange,Javascript,Html,Events,Onchange,我有如下设置,当我通过单击标签或复选框本身选中/取消选中复选框时,会触发更改事件 但当我尝试使用javascript(比如通过点击按钮)选中/取消选中复选框时,复选框将选中或取消选中,但更改事件不会触发 请检查下面的代码 var checkbox=document.getElementById(“check”); checkbox.addEventListener(“更改”,function(){window.alert(“更改事件”)}) document.getElementsByTagN
var checkbox=document.getElementById(“check”);
checkbox.addEventListener(“更改”,function(){window.alert(“更改事件”)})
document.getElementsByTagName(“按钮”)[0]。addEventListener(“单击”,函数(){
checkbox.checked?checkbox.checked=false:checkbox.checked=true;
})
这是标签
切换复选框
为什么会出现这种情况?只需使用复选框。单击()代码>就这么简单。它将在触发change
事件的同时切换选中/取消选中
var checkbox=document.getElementById(“check”);
checkbox.addEventListener(“更改”,函数(){
窗口警报(“更改事件”)
})
document.getElementsByTagName(“按钮”)[0]。addEventListener(“单击”,函数(){
复选框。单击();
})
这是标签
切换复选框
好的,您可以将您的逻辑分离到另一个函数中,然后在复选框的“更改”和按钮的“单击”上触发该函数
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")
}
这不能解决你的问题吗?不过,我相信这更符合您的初衷。是的,这很好。但为什么使用复选框更改时不触发更改事件。checked=true@KaleemNalband为其创建一个JSFIDLE并链接here@KaleemNalband你没有使用我上面的代码。看到这个了吗works@AnkitAgrawal您的代码运行良好。但是为什么更改事件不由我的代码触发,我的代码也会更改复选框的状态呢?让我们来看看。