我有一个复选框,我希望它在提交表单时向localstorage写入复选框的状态(true / false)。
因此,如果用户选中该框并单击“提交”,则存储在localstorage中的值将为“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 :(得分: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);
}
答案 1 :(得分:0)
现在在jQuery中:
<div class = "parentDiv">
<div style='float:left'>
<button type="button" id = "myButton">Button 1</button>
<div class = "childDiv", id = "dropdown">
<div class = "cont"> Point 1</div>
<div class = "cont"> Point 2</div>
</div>
</div>
<div style='float:left'>
<button type="button" id = "myButton2">Button 2</button>
<div class = "childDiv", id = "dropdown2">
<div class = "cont"> Point 3</div>
<div class = "cont"> Point 4</div>
</div>
</div>
</div>
从本地存储使用
获取保存的支票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));
}
}