本地存储未保存复选框未选中阶段

时间:2015-06-02 12:42:45

标签: javascript jquery html5 checkbox local-storage

我正在使用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);
    }
}

问题在于,当它取消选中时,它会将值保存为“打开”,以便当我取消选中复选框并再次保存时,该部分可以工作但它仍然保存为“打开”...所以之后的代码将会将其设置为再次检查。

我该如何解决这个问题?

2 个答案:

答案 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")