【发布时间】:2017-02-05 14:08:12
【问题描述】:
我可以让以下代码按照我想要的方式工作,但有一个例外。 当我选择复选框时,div 的背景颜色会从 #fff 更改为 #ffe600。我遇到的问题是提交表单并刷新页面时,背景颜色会恢复为#fff。我希望在提交表单后刷新页面时背景颜色保持#ffe600。页面刷新后复选框仍处于选中状态,但 div 背景颜色恢复为#fff。有谁知道刷新页面时是否可以保持 div 背景颜色#ffe600。这真是被难住了。
function myFunction(x, _this) {
if (_this.checked) {
x.style.backgroundColor = '#ffe600';
} else {
x.style.backgroundColor = '#fff';
}
}
#product1 {
background-color: #fff;
padding: 3px 5px 3px 7px;
margin-top: 6px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="product1">
<label class="chk">
<input type="checkbox" onChange="myFunction(product1, this)" name="select_product" value="Y" />Label goes here.</label>
</div>
谢谢!
【问题讨论】:
-
localStorage应该可以工作 -
通常使用 cookie 或存储复选框状态的文件来执行您想要的行为。
-
或者只使用 .ajax 提交表单并完全避免刷新。 api.jquery.com/jquery.ajax
-
@achref 听起来复选框状态已经持续存在。但是背景颜色没有在页面加载时初始化。 “该复选框在页面刷新后仍处于选中状态,但 div 背景颜色恢复为 #fff ...”。没有?
-
@achref 是的,这就是我的意思。复选框保持选中状态,但还没有任何代码可以根据这些状态设置初始背景颜色。
标签: javascript jquery html css checkbox