如何根据变量设置复选框
我已尽力搜索所有答案,但找不到任何具体答案。 所以,如果你发现了什么,请让我知道,我会马上删除它。
我创建了一个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