Javascript 如何在localStorage中保存复选框状态

Javascript 如何在localStorage中保存复选框状态,javascript,html,checkbox,save,local-storage,Javascript,Html,Checkbox,Save,Local Storage,我正在为文档管理员设计一个web应用程序,其中有一个“设置”页面,用户可以看到一对复选框,其格式类似于iphone的切换按钮。它们工作正常,但每当用户离开网站或刷新页面时,这些按钮的状态都会重置回默认状态。有没有办法使用localStorage保存它们的状态,或者我需要使用CookieEDIT在JavaScript文件(代码如下所示)中有两个函数,一个叫做saveSettings,另一个叫做loadSettings,但是如果我必须在一个函数中完成所有操作,请告诉我编辑结束非常感谢您的帮助。到目前

我正在为文档管理员设计一个web应用程序,其中有一个“设置”页面,用户可以看到一对复选框,其格式类似于iphone的切换按钮。它们工作正常,但每当用户离开网站或刷新页面时,这些按钮的状态都会重置回默认状态。有没有办法使用localStorage保存它们的状态,或者我需要使用CookieEDIT在JavaScript文件(代码如下所示)中有两个函数,一个叫做saveSettings,另一个叫做loadSettings,但是如果我必须在一个函数中完成所有操作,请告诉我编辑结束非常感谢您的帮助。到目前为止,我有

localStorage.CheckboxName = $('#CheckboxName').val();
将复选框保存到localStorage和

但它不会拯救我们。我做错什么了吗

编辑

下面是两个复选框的HTML代码

<li style = 'color: #FFFFFF;'>Notifications<span class = 'toggle'><input type = 'checkbox' class = 'toggle' name = 'notifications' id = 'notifications' /></span></li>
<li style = 'color: #FFFFFF;'>Preview<span class = 'toggle'><input type = 'checkbox' class = 'toggle' name = 'preview' id = 'preview' checked = "true" /></span></li>
  • 通知
  • 预演
  • 编辑结束


    任何帮助都将是惊人的,提前感谢x

    我不确定,但我一直认为是这样的:

    window.localStorage.setItem('CheckboxName', $('#CheckboxName').val());
    
    $('#CheckboxName').val(window.localStorage.getItem('CheckboxName'));
    

    你可以试试下面的方法

    $(“#CheckboxName”).is(“:checked”)?“checked”:“not”并保存输出,这似乎是此处建议的内容:

    要存储物品,请记住商店只保存字符串

    例如

    因此,当您读回该值时,需要对字符串进行反序列化

    var str = window.localStorage.getItem(key);
    var obj = $.parseJSON(str);
    
    或者,您可以只做字符串比较,无论什么更好地满足您的需要,在您的情况下,我要做的是将id值对的对象存储在一个存储键中,并将它们全部反序列化以使用适当的对象

    例如


    您使用的是jQuery本地存储还是HTML5本地存储。。这和复选框有什么关系?无意冒犯,我只是看不出你的答案有什么关联,但你把“CheckboxName”放在哪里了?它不应该在前面吗?加上这对我不起作用……这是有道理的。但是我不想要一个警告框,我希望当用户重新访问页面或网站时,它要么保持选中状态,要么不保持选中状态。行$('#test')[0]。checked=$.parseJSON(window.localStorage.getItem('a');做好这项工作。警报框只是用来控制。。。(您可以删除它)。另外,你可以在。。。选中该框,单击store并重新加载JSFIDLE页面。哦,好的。你是说“商店”按钮上的那条线?在我的.js文件中,我有两个函数;保存设置和加载设置。我会将其放入保存设置还是加载设置中?保存设置=window.localStorage.setItem('a',JSON.stringify($('CheckboxName')[0]。选中));|||||loadSettings=$('#CheckboxName')[0]。选中=$.parseJSON(window.localStorage.getItem('a'));好的,谢谢。你发给我的链接对我的情况没有特别的帮助。我有两个功能来保存和加载保存在设置页面上的设置-你知道如何拆分该功能吗?我算不出来。非常感谢,但是你给我的lat代码块没有多大意义。我有两个复选框——一个叫做“通知”,另一个叫做“预览”,我如何将它们编码到您给我的第二个代码中?我尝试了第一段代码,但没有成功。
    var val = $('#CheckboxName').val();
    window.localStorage.setItem(key, JSON.stringify(val));
    
    var str = window.localStorage.getItem(key);
    var obj = $.parseJSON(str);
    
    var val = {
        CheckboxName1: true,
        CheckboxName2: false,
        CheckboxName3: false, // ect....
    };
    window.localStorage.setItem(key, JSON.stringify(val));