1

我正在为文档管理器设计一个网络应用程序,并且有一个“设置”页面,用户可以在其中看到一对复选框,其格式看起来像 iphone 切换按钮。它们可以正常工作,但是每当用户离开网站或刷新页面时,这些按钮的状态都会重置为默认值。有没有办法使用localStorage保存它们的状态,还是我需要使用cookie在 JavaScript 文件中编辑(代码如下所示)有两个函数,一个称为saveSettings另一个称为loadSettings,但如果我必须在一个函数中完成所有操作,请告诉我。END OF EDIT任何帮助都将不胜感激。到目前为止我有;

localStorage.CheckboxName = $('#CheckboxName').val();

将复选框保存到localStorage和;

$('#CheckboxName').val(localStorage.CheckboxName);

但它不会保存。难道我做错了什么?

编辑

这是两个复选框的 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

4

3 回答 3

0

我不确定,但我一直相信它是这样的:

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

$('#CheckboxName').val(window.localStorage.getItem('CheckboxName'));
于 2012-10-11T10:15:14.313 回答
0

你可以试试以下

$("#CheckboxName").is(':checked')?'checked':'not' 并保存输出,似乎是这里的建议: 如何使用本地存储保留复选框状态以过滤项目

于 2012-10-11T10:15:33.337 回答
0

要存储 Item 只需记住 store 只保存字符串。

例如。

var val = $('#CheckboxName').val();
window.localStorage.setItem(key, JSON.stringify(val));

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

var str = window.localStorage.getItem(key);
var obj = $.parseJSON(str);

或者您可以在您的情况下更好地进行字符串比较,我会做的是将一个 id 值对的对象存储在一个存储键中并将它们全部反序列化以使用适当的对象

例如。

var val = {
    CheckboxName1: true,
    CheckboxName2: false,
    CheckboxName3: false, // ect....
};
window.localStorage.setItem(key, JSON.stringify(val));
于 2012-10-11T10:32:32.520 回答