我正在尝试编写自己的代码,但是当我console.log进入updateJSON()时,它使我“处于打开状态”
我不知道为什么这样说。我检查了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);
}
不确定我是否理解。复选框的输入类型没有值,但已选中或未选中,这是对还是错,当我单击它时选中了它,它仍然会登录。如果是开和关之类的东西,为什么不注销
答案 0 :(得分:2)
看看这个:
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
。