Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将多个复选框保存到本地存储而不被覆盖_Javascript_Json_Cordova_Checkbox_Local Storage - Fatal编程技术网

Javascript 将多个复选框保存到本地存储而不被覆盖

Javascript 将多个复选框保存到本地存储而不被覆盖,javascript,json,cordova,checkbox,local-storage,Javascript,Json,Cordova,Checkbox,Local Storage,我在表单中有一个复选框,我希望它在提交表单时将复选框的状态(true/false)写入localstorage 因此,如果用户选中该框并单击submit,则存储在localstorage中的值将为“true”。但是,如果用户重新打开应用程序并再次提交表单,我不希望数据被覆盖,因此,例如,如果用户下次重新打开应用程序并决定不选中该特定会话上的复选框,则localstorage中的值应为“true,false”,依此类推 我想我应该使用JSON.stringify,但不确定如何在这里集成 这是我的j

我在表单中有一个复选框,我希望它在提交表单时将复选框的状态(true/false)写入localstorage

因此,如果用户选中该框并单击submit,则存储在localstorage中的值将为“true”。但是,如果用户重新打开应用程序并再次提交表单,我不希望数据被覆盖,因此,例如,如果用户下次重新打开应用程序并决定不选中该特定会话上的复选框,则localstorage中的值应为“true,false”,依此类推

我想我应该使用JSON.stringify,但不确定如何在这里集成

这是我的js(我正在使用phonegap)

html:


药物A

您应该从localStorage加载复选框状态,这样,如果用户提交表单而不修改复选框状态,则不会更改:

document.addEventListener("deviceready",onDeviceReady,false);

function onDeviceReady() {
  document.getElementById("xbutton").addEventListener("click",savecheck,false);
  document.getElementById("xbutton").checked = localStorage.getItem("MedA");
}

function savecheck(){
  var checkb = document.getElementById("MedA");
  localStorage.setItem("MedA", checkb.checked);
}

现在,jQuery中的

var MedA = [100];
localStorage.setItem("index",0);

function savecheck(){

    if($('input[name="chk[]"]:checked')){
        MedA[localStorage.getItem("index")] = $('input[name="chk[]"]').val();
        localStorage.setItem("index",localStorage.getItem("index")+1);
        localStorage.setItem("MedA", JSON.stringify(MedA));
    }


}
要从本地存储获取保存的支票,请使用

function getSavedcheck(){

    var storedMedA = JSON.parse(localStorage.getItem("MedA"));

    return storedMedA;
}

我想我不是这个意思。我的意思是,我希望复选框的状态持续保存到localstorage,而不覆盖任何内容,因此,例如,localstorage中的值可能是“true、false、false、true…”等等,这取决于用户是否在每个会话中选中复选框
var MedA = [100];
localStorage.setItem("index",0);

function savecheck(){

    if($('input[name="chk[]"]:checked')){
        MedA[localStorage.getItem("index")] = $('input[name="chk[]"]').val();
        localStorage.setItem("index",localStorage.getItem("index")+1);
        localStorage.setItem("MedA", JSON.stringify(MedA));
    }


}
function getSavedcheck(){

    var storedMedA = JSON.parse(localStorage.getItem("MedA"));

    return storedMedA;
}