我正在使用jquery和本地存储来保存复选框的状态。
为了保存我使用:
function save_form() {
window.localStorage.setItem('fb_show', $('#fb_show').val());
alert('Saved');
}
function load_form() {
var fb_checkbox_val = window.localStorage.getItem('fb_show');
alert(fb_checkbox_val);
if (fb_checkbox_val == 'on') {
$("#fb_show").prop("checked", true);
} else {
$("#fb_show").prop("checked", false);
}
}
问题在于,当它取消选中时,它会将值保存为“打开”,以便当我取消选中复选框并再次保存时,该部分可以工作但它仍然保存为“打开”...所以之后的代码将会将其设置为再次检查。
我该如何解决这个问题?
答案 0 :(得分:3)
您应该在localStorage
:
function save_form() {
window.localStorage.setItem('fb_show', $('#fb_show').is(':checked'));
alert('Saved');
}
function load_form() {
var fb_checkbox_val = window.localStorage.getItem('fb_show') === 'true' ? true : false;
alert(fb_checkbox_val);
$("#fb_show").prop("checked", fb_checkbox_val);
}
答案 1 :(得分:0)
未选中的复选框实际上没有值,因此您必须检查是否已选中并保存该值。 $("#fb_show").is(":checked")