从本地存储迁移到本地存储-保存复选框

时间:2020-06-29 01:16:23

标签: checkbox local-storage localforage

我有一些本地存储代码来保存是否选中复选框以隐藏或显示一组div中的div(如果选中则也可以隐藏以进行打印)。它运作良好。尝试将相同的代码迁移到localforage失败。 很可能是由于我自己缺乏了解!我希望有人可以指出正确的方向。

我的本​​地存储代码:

var checkboxValuesCommon=JSON.parse(localStorage.getItem("formValuesCommon"))||{},
$checkboxesCommon=$("input.printitCommon"),
$commonDrugCommon=$(".eachdrug.eachcommondrug");

function updateStorageCommon(){
$checkboxesCommon.each(function()
{
checkboxValuesCommon[this.id]=this.checked,this.checked? 
$(this).closest(".eachdrug.eachcommondrug").removeClass("hidden-print"):$(this).closest(".eachdrug.eachcommondrug").addClass("hidden-print")}),
localStorage.setItem("formValuesCommon",JSON.stringify(checkboxValuesCommon))}

$checkboxesCommon.on("change",function(){
this.checked?$(this).closest(".eachdrug.eachcommondrug").removeClass("hidden-print"):$(this).closest(".eachdrug.eachcommondrug").addClass("hidden-print"),updateStorageCommon()}),

$.each(checkboxValuesCommon,function(e,r) 
{$("#"+e).prop("checked",r)}),
$checkboxesCommon.each(function(){
$(this).is(":checked")?$(this).closest(".eachdrug.eachcommondrug").removeClass("hidden-print hidden"):$(this).closest(".eachdrug.eachcommondrug").addClass("hidden-print hidden")
});

Localforage代码:

localforage.getItem('formValuesCommon').then(function(value) {
var checkboxValuesCommon = value;
var $checkboxesCommon = $("input.printitCommon"),
$commonDrugCommon = $(".eachdrug.eachcommondrug");
function updateStorageCommon() {


$checkboxesCommon.each(function() {
    checkboxValuesCommon[this.id] = this.checked, this.checked ?  $(this).closest(".eachdrug.eachcommondrug").removeClass("hidden-print") : $(this).closest(".eachdrug.eachcommondrug").addClass("hidden-print")
}); localforage.setItem("formValuesCommon", true);
}

 $checkboxesCommon.on("change", function() {
this.checked ? $(this).closest(".eachdrug.eachcommondrug").removeClass("hidden-print") :  $(this).closest(".eachdrug.eachcommondrug").addClass("hidden-print"); 
updateStorageCommon()
}); 
$.each(checkboxValuesCommon, function(e, r) {
$("#" + e).prop("checked", r)
}); 
$checkboxesCommon.each(function() {
this.checked ? $(this).closest(".eachdrug.eachcommondrug").removeClass("hidden-print hidden") : $(this).closest(".eachdrug.eachcommondrug").addClass("hidden-print hidden")
});
});

0 个答案:

没有答案
相关问题