复选框值日志"ON"而不是 true 或 false



我正试图编写自己的代码,但当我在updateJSON((中控制台.log时,它会给我";关于";

我不知道为什么它会打开。我检查了event.target,它是一个复选框,但为什么控制台会记录";关于";

这是我的代码

let task = {
"list": {
"clean the garden" : true,
"clean the fence": true,
"clean the room": false
}
}
const div = document.getElementById("output");
for(let key in task.list){
//console.log(key);
var status = !task.list[key] ? 'checked': 'unchecked'
div.innerHTML += `
<li>${key}
<input type='checkbox' ${status}>
</li>
`
}
const checkboxes = document.querySelectorAll('#output input[type="checkbox"]');
for(let i = 0; i < checkboxes.length;i++){
checkboxes[i].onchange = updateJSON;
}
function updateJSON(){
var key = event.target.value;
console.log(key);
}

不确定我是否理解。输入类型的复选框没有值,但已选中或未选中,是真是假,当我点击它时选中了一个,它仍然登录。如果它是开和关之类的东西,为什么它不注销

看看这个:

console.log(document.getElementById('chk1').value);
console.log(document.getElementById('chk2').value);
<input type="checkbox" id="chk1" />
<input type="checkbox" id="chk2" value="10" />

由于您在这里使用event.target.value,复选框没有默认值,所以您必须提供该值,否则它将是on

最新更新