javascript - 复选框未检查到正确的值

标签 javascript html css checkbox

我有应该是简单的代码,但出于某种原因,我没有理解正确设置复选框的逻辑有什么问题。我正在使用本地存储,以便检查状态在 session 之间保持不变。

这是我的代码。发生的事情是出于某种原因,即使 console.log 在它应该为 false 时打印出 false,或者在它应该为 true 时打印出 true,无论哪种方式,复选框最终都会被选中。

var checkboxElement = document.getElementById("checkbox").getElementsByTagName('input')[0]

    checkboxElement.addEventListener('click', function() {
        console.log(checkboxElement.checked)
        if (localStorage != undefined) {
            localStorage.setItem("checkbox", checkboxElement.checked)
        }
    });

    if(localStorage != undefined)
    {
        console.log("Local storage supported.");

        //set defaults
        if (localStorage.getItem("checkbox") == undefined) {
            localStorage.setItem("checkbox", false)
        }

        var isChecked = localStorage.getItem("checkbox")
        checkboxElement.checked = isChecked
        console.log(isChecked)
    }

最佳答案

因为 localStorage 将值存储为字符串,所以当您有 false 时,它实际上存储为 'false',这是一个真值,所以即使复选框是未选中它将被标记为已选中。

var isChecked = localStorage.getItem("checkbox") === 'true';
checkboxElement.checked = isChecked;
console.log(isChecked)

演示:Fiddle

关于javascript - 复选框未检查到正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36733083/

相关文章:

javascript - 表行上的 jQuery 可排序无法移动

javascript - InvokeScript() 方法返回 null

Javascript 下一个/上一个脚本

JavaScript,尝试让按钮在单击时移动

html - CSS Canvas 路径的交叉部分似乎颜色不正确。

html - 当尝试在其下方放置一个 div 覆盖内容时,它不会覆盖,只是将内容向下推

html - css:内容框穿过固定的页脚框

css - 显示 : initial for internet explorer

html - 如何并排渲染 li 元素

javascript - 为什么有一部分代码没有执行? Node.js/东方