HTML代码:
<div class="wrap">
<h3>Background Swap:</h3>
<form action="" method="POST">
<div id="checkbox-container">
Shadowless background: <input type="checkbox" name="new_background" id="checker" <?php echo (isset($_POST['new_background']))? "checked='checked'": "";?>/><br /><br />
</div>
<input type="submit" name="submit" value="Upgrade Background" class="button" />
</form>
</div>
这将使复选框保持选中状态,但当页面刷新或退出并返回时,复选框将取消选中。因此,在进行了一些研究后,我尝试使用localStorage,但似乎还没有完全弄清楚。 localStorage代码:
var checkboxValue = JSON.parse(localStorage.getItem('checkboxValue')) || {};
var $checkbox = $("#checkbox-container :checkbox");
$checkbox.on("change", function(){
$checkbox.each(function(){
checkboxValue[this.id] = this.checked;
});
localStorage.setItem("checkboxValue", JSON.stringify(checkboxValue));
});
//on page load
$.each(checkboxValue, function(key, value){
$("#" + key).prop('checked', value);
});
我有localStorage代码周围的脚本标签,并在实现这些代码后,我的复选框仍然无法保持选中状态。
两个代码整体如下:
<div class="wrap">
<h3>Background Swap:</h3>
<form action="" method="POST">
<div id="checkbox-container">
Background Swap: <input type="checkbox" name="new_background"/>
</div>
<script>
var checkboxValue = JSON.parse(localStorage.getItem('checkboxValue')) || {}
var $checkbox = $("#checkbox-container :checkbox");
$checkbox.on("change", function(){
$checkbox.each(function(){
checkboxValue[this.id] = this.checked;
});
localStorage.setItem("checkboxValue", JSON.stringify(checkboxValue));
});
//on page load
$.each(checkboxValue, function(key, value){
$("#" + key).prop('checked', value);
});
</script>
<input type="submit" name="submit" value="Upgrade Background" class="button"/>
</form>
</div>
我想感谢所有花时间帮助我解决问题的人,特别鸣谢 @Pranav C Balan!请查看完整的代码 @ https://dev59.com/UaLia4cB1Zd3GeqPfz29#44321072。
checkboxValue
是否具有你期望的值吗?在你勾选复选框并重新加载页面后,它是否仍然保持原来的值? - Halcyon