我试图设置一个布尔值取决于是否选中了复选框,但我的checkQA点击功能似乎没有被触发。
console.log(checkbox)
返回input#enableQA
,因此我知道它正在击中正确的元素。
这里是JSFiddle。
var isChecked = false,
checkbox = document.getElementById('enableQA');
checkbox.onclick = checkQA;
var checkQA = function () {
if (checkbox.checked) {
isChecked = true;
checkbox.checked = true;
alert(isChecked);
} else {
isChecked = false;
checkbox.checked = false;
alert(isChecked);
}
}
<form method="post" name="qaform">
<input id="enableQA" name="enableQA" type="checkbox" value="" />
Enable QA
</form>
我只对纯Javascript解决方案感兴趣,请不要建议使用jQuery。
答案 0 :(得分:3)
checkQA
将被指定为onclick
未定义。因此,在函数之后移动该赋值。或者不要使它成为变量函数,而是命名函数。
答案 1 :(得分:1)
查看:http://www.w3schools.com/jsref/event_onclick.asp:
var isChecked = false,
checkbox = document.getElementById('enableQA');
console.log(checkbox);
checkbox.onclick = function () {
if (checkbox.checked) {
isChecked = true;
checkbox.checked = true;
alert(isChecked);
} else {
isChecked = false;
checkbox.checked = false;
alert(isChecked);
}
}
这对我有用! :)
答案 2 :(得分:0)
当您将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;