javascript onclick未按预期触发

javascript onclick未按预期触发,javascript,Javascript,我试图根据复选框是否被选中来设置布尔值,但我的checkQA click函数似乎没有启动 console.log(复选框)返回input#enableQA因此我知道它命中了正确的元素 这是一个例子 var isChecked=false, checkbox=document.getElementById('enableQA'); checkbox.onclick=checkQA; var checkQA=函数(){ 如果(复选框。选中){ isChecked=true; checkbox.che

我试图根据复选框是否被选中来设置布尔值,但我的checkQA click函数似乎没有启动

console.log(复选框)
返回
input#enableQA
因此我知道它命中了正确的元素

这是一个例子

var isChecked=false,
checkbox=document.getElementById('enableQA');
checkbox.onclick=checkQA;
var checkQA=函数(){
如果(复选框。选中){
isChecked=true;
checkbox.checked=true;
警报(已检查);
}否则{
isChecked=false;
checkbox.checked=false;
警报(已检查);
}
}
启用QA

我只对纯Javascript解决方案感兴趣,请不要建议使用jQuery。

checkQA
将不定义其分配给
onclick
。因此,将该赋值移到函数后面。或者不要使其成为变量函数,而是命名函数。

checkQA
将通过其分配给
onclick
而不定义。因此,将该赋值移到函数后面。或者不要将其设置为变量函数,而是命名函数。

通过查看:

这对我有用!:)

通过查看:


这对我有用!:)

您的onclick函数在分配给onclick时还不存在。按如下方式切换顺序:

    var isChecked = false,
    checkbox = document.getElementById('enableQA');

var checkQA = function () {
    if (checkbox.checked) {
        isChecked = true;
        checkbox.checked = true;
        alert(isChecked);
    } else {
        isChecked = false;
        checkbox.checked = false;
        alert(isChecked);
    }
}

checkbox.onclick = checkQA; 

您的onclick函数在分配给onclick时还不存在。按如下方式切换顺序:

    var isChecked = false,
    checkbox = document.getElementById('enableQA');

var checkQA = function () {
    if (checkbox.checked) {
        isChecked = true;
        checkbox.checked = true;
        alert(isChecked);
    } else {
        isChecked = false;
        checkbox.checked = false;
        alert(isChecked);
    }
}

checkbox.onclick = checkQA; 

    var isChecked = false,
    checkbox = document.getElementById('enableQA');

var checkQA = function () {
    if (checkbox.checked) {
        isChecked = true;
        checkbox.checked = true;
        alert(isChecked);
    } else {
        isChecked = false;
        checkbox.checked = false;
        alert(isChecked);
    }
}

checkbox.onclick = checkQA;