首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在事件触发后在local-storage中设置复选框状态

如何在事件触发后在local-storage中设置复选框状态
EN

Stack Overflow用户
提问于 2019-01-06 06:15:44
回答 1查看 67关注 0票数 0

我有一个默认选中的复选框输入,用于切换页面上元素的可见性。我希望用户在刷新页面时保存选项。

代码语言:javascript
复制
var c = document.createElement('input')
c.setAttribute("type", "checkbox")
c.checked = true

c.onclick = function(){
    if(c.checked) element.style.display = 'block'
    if(c.checked == false) element.style.display = 'none'
}

/* This code below saves the state of the checkbox,
 but never fires the event or updates the element */

c.checked = (localStorage.getItem('cchecked')== 'true');
c.onchange = function(){
    localStorage.setItem('cchecked', c.checked)
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-06 06:28:43

嗯,一个更完整的例子是可行的..

代码语言:javascript
复制
<!DOCTYPE html>
<html>
    <body>
        <hr id="line" />

        <script>
        var element = document.getElementById('line')
        var c = document.createElement('input')
        c.setAttribute("type", "checkbox")
        c.checked = true

        c.onclick = function(){
            if(c.checked) element.style.display = 'block'
            if(c.checked == false) element.style.display = 'none'
        }

        /* This code below saves the state of the checkbox,
         but never fires the event or updates the element */

        // c.checked = (localStorage.getItem('cchecked')== 'true');
        if (localStorage.getItem('cchecked')== 'true') {
            c.checked = true;

        }
        else if (localStorage.getItem('cchecked')== 'false') {
            c.checked = false;

        }

        c.onchange = function(){
            localStorage.setItem('cchecked', ( c.checked ? 'true' : 'false'))
        }

        if ( !c.checked) element.style.display = 'none'

        document.body.appendChild(c);
        </script>

    </body>

</html>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54056781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档