Javascript 将多个复选框保存到本地存储而不被覆盖
我在表单中有一个复选框,我希望它在提交表单时将复选框的状态(true/false)写入localstorage 因此,如果用户选中该框并单击submit,则存储在localstorage中的值将为“true”。但是,如果用户重新打开应用程序并再次提交表单,我不希望数据被覆盖,因此,例如,如果用户下次重新打开应用程序并决定不选中该特定会话上的复选框,则localstorage中的值应为“true,false”,依此类推 我想我应该使用JSON.stringify,但不确定如何在这里集成 这是我的js(我正在使用phonegap) html: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
药物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;
}