如何根据变量设置复选框

我已尽力搜索所有答案,但找不到任何具体答案。 所以,如果你发现了什么,请让我知道,我会马上删除它。

我创建了一个JSFiddle来显示我的问题(为便于参考,下面复制了JS部分):http://jsfiddle.net/hg67R/1/

当我尝试根据变量的值设置复选框的值时,它似乎无法正确设置。 我创建的例子应该保存每个复选框的当前状态(这是正确的)。 然后,无论您如何更改这些复选框,单击加载时它都应该将其更改回来。 存储变量是正确的,但它没有正确设置复选框。 我确信这是明显的,但我确定无法看到它。

function save() {
    localStorage.setItem("numbers", document.getElementById("Numbers").checked);
    localStorage.setItem("tips", document.getElementById("Tips").checked);
}

function load() {
    document.getElementById("Numbers").checked = localStorage.numbers;
    document.getElementById("Tips").checked = localStorage.tips;

    console.log("numbers storage: " + localStorage.numbers);
    console.log("numbers box: " + document.getElementById("Numbers").checked);
    console.log("tips storage: " + localStorage.tips);
    console.log("tips box: " + document.getElementById("Tips").checked);
}

console.logs告诉我变量正在存储和加载。

谢谢!


除了他的答案

http://jsfiddle.net/Icepickle/NVw3L/

其中最大的变化是我检查localStorage值是否与“true”一致

document.getElementById("Numbers").checked = localStorage.numbers === 'true';

两件事情:

Localstorage存储字符串键和字符串值

这里清楚地描述了复选框的checked属性的适当值:

HTML复选框的checked属性的值是多少?

具体来说,这一部分:

当控件元素的checked属性被设置时,开关处于“on”状态。

这意味着它放在那里并不重要,事实上它只需要被定义。 以下全部将被检查:

<input name="checkbox_name" id="checkbox_id" type="checkbox" checked>
<input name="checkbox_name" id="checkbox_id" type="checkbox" checked="yes"> 
<input name="checkbox_name" id="checkbox_id" type="checkbox" checked="no"> 
<input name="checkbox_name" id="checkbox_id" type="checkbox" checked="blue">
<input name="checkbox_name" id="checkbox_id" type="checkbox" checked="false">

只有以下内容才会被取消选中:

<input name="checkbox_name" id="checkbox_id" type="checkbox">
链接地址: http://www.djcxy.com/p/56049.html

上一篇: How to set checkbox checked based on a variable

下一篇: jquery is unable to set the prettyCheckable plugin radio button programmatically