使用默认选中复选框的LocalStorage
Use LocalStorage with Checkbox Checked by Default
笔:http://codepen.io/anon/pen/YWaJaP?editors=0010
小提琴:https://jsfiddle.net/qnLhtzss/
默认情况下,我希望复选框被选中,但如果用户更改了它,我希望它保存为用户保存的内容。
当用户点击链接时,它会保存状态,但默认情况下,当它被认为是时,复选框不会被选中。
有人能解释一下为什么不起作用吗?
HTML:
<input type="checkbox" id="changePrev" checked>
<label for="changePrev">Auto Update Preview</label>
JavaScript:
// Toggle Auto Update Preview
var checkedPrev = JSON.parse(localStorage.getItem("autoUpdate"));
var changePrev = document.getElementById("changePrev");
changePrev.checked = checkedPrev;
$("#changePrev").on("change", function() {
(this.checked) ? localStorage.setItem("autoUpdate", "true") : localStorage.setItem("autoUpdate", "false");
}).trigger("change");
问题是第一次使用导航到页面
var checkedPrev = JSON.parse(localStorage.getItem("autoUpdate"));
将是null
,因为LocalStorage中不存在"autoUpdate"
密钥。这随后将changePrev.checked = checkedPrev
设置为null
,并最终导致复选框未选中。
您可以通过对checkedPrev
进行简单的null
检查来解决此问题,如果是null
,则默认为true
。
// Toggle Auto Update Preview
var checkedPrev = JSON.parse(localStorage.getItem("autoUpdate"));
// If checkedPrev === null then the use has never been here before.
// Make checkedPrev default to true
checkedPrev = checkedPrev === null ? true : false;
var changePrev = document.getElementById("changePrev");
changePrev.checked = checkedPrev;
$("#changePrev").on("change", function() {
(this.checked) ? localStorage.setItem("autoUpdate", "true") : localStorage.setItem("autoUpdate", "false");
}).trigger("change");
相关文章:
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 正在验证8个真/假复选框或复选框中的2个
- 为复选框javascript指定两个值
- 如何在单击复选框后调用控制器方法
- 从复选框和Selects-KnockoutJS中获取值的总和
- 选中多个具有相同名称的复选框
- 使用Jquery选择或取消选择ListView中的所有复选框
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 使用$.ajax发布多个复选框
- AngularJS单选筛选不适用于Name、Description和Field4复选框值
- 使用jquery选中/取消选中单个复选框
- Angular JS Filter-通过3个复选框进行筛选
- 如果选中了多个复选框,如何添加事件
- Javascript复选框函数:;缺少:在属性id之后"
- JavaScript-切换“;全部检查”;复选框true/false
- 如何从javascript/jquery中的复选框中获取布尔值
- 在Ajax中捕获复选框值
- 显示隐藏复选框
- 如何使用javascript函数在gridview中按行启用/禁用复选框
- jquery中的复选框依赖项