当前正在处理会话存储,其中用户必须从第一页中选择一个单选按钮并单击下一步按钮div必须在第一页的第二页中显示我已经创建了一个具有一组对象的函数,其中数据将是在第二个中使用set item存储我试图使用get item获取这些值。
我有两个场景
这是我的plunker link就像小提琴一样
这是我从第一页获取项目的代码
function storedata(){
var storeDate = {};
storeDate['storedValue1'] = $('input[id=pg]:checked').val();
storeDate['storedValue2'] = $('#alain').prop('checked'),$('#abudhabi').prop('checked');
storeDate['storedValue3'] = $('#slt_mjrpg option:selected').val("Dip - Prof. PG Dip in Teaching");
sessionStorage.setItem('storeDate', JSON.stringify(storeDate));
}
function storedata1(){
var storeDate1 = {};
storeDate1['storedValuej'] = $('#slt_mjr option:selected').val("Bachelor of Arts in Persian").text();
sessionStorage.setItem('storeDate1', JSON.stringify(storeDate1));
console.log(storeDate1);
}
当我在会话存储中检查时,我将storedValue2视为false
提供或在此行之后
storeDate['storedValue2'] = $('#alain').prop('checked') || $('#abudhabi').prop('checked');
我在storedValue2 = true中变为true,但我的输出没有按预期工作
在第二页
var otherObj = JSON.parse(sessionStorage.getItem('storeDate'));
var otherObj1 = JSON.parse(sessionStorage.getItem('storeDate1'));
if (otherObj.storedValue1 && otherObj.storedValue2 && otherObj.storedValue3 != "pg") {
$(".pay_check,.pay_click").show();
$(".pay_trans").hide();
} else if (otherObj1.storedValuej === "BAP") {
$('.create_btn,.no_applica').show();
$('.pay_btn').hide();
} else { * * // I have tried using like this but no use**
//$('.create_btn,.no_applica,.pay_click').hide();
$('.pay_btn').show();
}
任何有关问题的建议人
请指导我在哪里做错了。提前致谢
答案 0 :(得分:1)
好的,你这里有很多问题。主要是由于对功能的误解。
首先,我们可以改变
storeDate['storedValue1'] = $('input[id=pg]:checked').val();
// to
storeDate['storedValue1'] = $('#pg').val();
jQuery提供的$
函数根据给定的选择器选择元素。因此$('#pg')
会选择ID为pg
的元素。然后val()
返回元素的值。
其次,我们需要改变
storeDate['storedValue2'] = $('#alain').prop('checked'),$('#abudhabi').prop('checked');
// to
storeDate['storedValue2'] = $('#alain').prop('checked') || $('#abudhabi').prop('checked');
你只是误解了布尔运算符。如果a || b
或 true
解析为真,则a
会解析为b
。
最后是最糟糕的罪犯
storeDate['storedValue3'] = $('#slt_mjrpg option:selected').val("Dip - Prof. PG Dip in Teaching");
// to
storeDate['storedValue3'] = $('#slt_mjrpg).val();
val
返回元素的值。如果是select,它将返回所选选项的值。提供字符串参数将设置该值。所以我们正在做的只是获取价值,我们稍后会检查值。
在隐藏/显示功能中,我们不需要进行太多改动。我们只是在相等操作中向下移动不合适的val
参数以获得布尔值。
if (otherObj.storedValue1 && otherObj.storedValue2 && otherObj.storedValue3 === "Dip - Prof. PG Dip in Teaching")
答案 1 :(得分:-2)
我认为会话存储只能使用一页。
你应该尝试sessionstorage的localstorage instade。
试试这个
function storedata(){
var storeDate = {};
storeDate['storedValue1'] = $('input[id=pg]:checked').val();
storeDate['storedValue2'] = $('input[id=alain]:checked').val();
storeDate['storedValue3'] = $('#slt_mjrpg option:selected').val("Dip - Prof. PG Dip in Teaching");
localStorage.setItem('storeDate', JSON.stringify(storeDate));
}
和
var otherObj = JSON.parse(localStorage.getItem('storeDate'));
var otherObj1 = JSON.parse(sessionStorage.getItem('storeDate1'));
if (otherObj.storedValue1 && otherObj.storedValue2 && otherObj.storedValue3 !="pg") {
$(".pay_check,.pay_click").show();
$(".pay_trans").hide();
} else if (otherObj1.storedValuej === "BAP"){
$('.create_btn,.no_applica').show();
$('.pay_btn').hide();
} else {
**// I have tried using like this but no use**
//$('.create_btn,.no_applica,.pay_click').hide();
$('.pay_btn').show();
}