2016-09-28 62 views
-1

我有一個複選框,我希望它在提交表單時向本地存儲寫入複選框的狀態(true/false)。將多個複選框保存到本地存儲中而不會被覆蓋

因此,如果用戶選中該框並單擊提交,則存儲在本地存儲中的值將爲「true」。然而,我不想要的是,如果用戶重新打開應用程序並再次提交表單,數據將被覆蓋,例如,如果用戶下次重新打開應用程序並決定不檢查該應用程序特定會話中,localstorage中的值應該是「true,false」等等。

我想我應該使用JSON.stringify,但不確定如何融入到這裏。

這裏是我的JS(我使用的PhoneGap)

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

function onDeviceReady() { 
      document.getElementById("xbutton").addEventListener("click",savecheck,false); } 

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

HTML:

<form> 
      <div id='medA'> 
       <input type="checkbox" id="MedA" name="Med" value="A">Medication A 
      </div> 
<input id="xbutton" type="button" onClick="savecheck()" value="Submit"> 
</form> 

回答

0

而且現在在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; 
} 
0

您應該從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); 
} 
+0

保存的檢查,我不認爲這是我的意思。我的意思是我希望複選框的狀態連續保存到本地存儲而不會覆蓋任何內容,例如,localstorage中的值可能是「true,false,false,true,...」等,具體取決於用戶在每個會話中選中或不選中該框 – michelle9090