我想使用localStorage存储复选框的状态,因此如果选中它,则在刷新页面后它将保持选中状态。但是,似乎存在一个问题:即使它不是,也会始终检查复选框。 我检查了localStorage并发现状态存储正确,但是当您刷新页面时,数据无条件地切换到" true"。 这是我的代码。
单击复选框时调用的函数:
function save_data(box){
var ls = localStorage;
if(box.checked == true){
ls.setItem("checkbox_val","true");
}
else{
ls.setItem("checkbox_val","false");
}
}
加载窗口时调用的函数:
window.onload = function(){
var ls = localStorage;
console.log(ls);
var checkbox = document.getElementById("privacy_checkbox");
if(ls.getItem("checkbox_val") == "true"){
checkbox.checked = true;
}
else{
checkbox.checked = false;
}
}
谢谢!
答案 0 :(得分:0)
我遇到了一些Firefox自动完成问题,这也许也是你的问题。
要阻止FF自动填充表单值,您可以在元素或表单上添加属性autocomplete="off"
,如下所示:
<form method="post" action="/form" autocomplete="off">
[...]
</form>
有关更多信息,请参阅此文章:https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion
答案 1 :(得分:0)
你可以发送调用save_data()的代码,根据你的代码它应该可以正常工作。 但是,似乎您在save_data()中发送的对象可能没有.checked属性。