Javascript 将表单数据加载到字符串然后加载到本地存储的最佳方式是什么?
这是将表单数据加载到字符串中然后加载到Javascript 将表单数据加载到字符串然后加载到本地存储的最佳方式是什么?,javascript,jquery,Javascript,Jquery,这是将表单数据加载到字符串中然后加载到localStorage的最佳方式吗 这是我自己想出来的,我不擅长编程。它能满足我的需要,但我不确定它是否是防弹代码 <script> var sg = document.getElementById("selectedGateway"); var sd = document.getElementById("selectedDestination"); var dm = document.getElementById("d
localStorage
的最佳方式吗
这是我自己想出来的,我不擅长编程。它能满足我的需要,但我不确定它是否是防弹代码
<script>
var sg = document.getElementById("selectedGateway");
var sd = document.getElementById("selectedDestination");
var dm = document.getElementById("departureMonth");
var dd = document.getElementById("departureDay");
var dy = document.getElementById("departureYear");
var rm = document.getElementById("returnMonth");
var rd = document.getElementById("returnDay");
var ry = document.getElementById("returnYear");
var ad = document.getElementById("adults");
var ch = document.getElementById("option2");
$("#searchRequestForm").submit(function() {
var string = 'From: ' + sg.value + ' \nTo: ' + sd.value + ' \nDeparture: ' + dm.value + '/' + dd.value + '/' + dy.value + ' \nReturn: ' + rm.value + '/' + rd.value + '/' + ry.value + ' \nNumber of adults: ' + ad.value + ' \nNumber of children: ' + ch.value;
localStorage.setItem("string", string);
});
</script>
var sg=document.getElementById(“selectedGateway”);
var sd=document.getElementById(“selectedDestination”);
var dm=document.getElementById(“部门月份”);
var dd=document.getElementById(“departureDay”);
var dy=document.getElementById(“部门年度”);
var rm=document.getElementById(“returnMonth”);
var rd=document.getElementById(“returnDay”);
var ry=document.getElementById(“返回年”);
var ad=document.getElementById(“成人”);
var ch=document.getElementById(“选项2”);
$(“#searchRequestForm”).submit(函数(){
变量字符串='从:'+sg.value+'\n到:'+sd.value+'\n部分:'+dm.value+'/'+dd.value+'/'+dy.value+'\n返回:'+rm.value+'/'+rd.value+'/'+ry.value+'\n成人人数:'+ad.value+'\n儿童人数:'+ch.value;
setItem(“string”,string);
});
我会使用下面这样的东西,以便处理对象及其属性,而不是一个大字符串。注意,除了jQuery选择器之外,这是纯JavaScript
演示:
要检索数据,请执行以下操作:
var data = JSON.parse(localStorage["mykey"]);
alert(data.sg);
另见:
function form(id) {
return document.getElementById(id).value;
}
我更喜欢表驱动的方法,因此没有重复的代码():
var id=[
“selectedGateway”、“From:”,
“selectedDestination”,“\nTo:”,
“部门月份”,“\n部门:”,
“出发日”、“/”,
“出发年份”、“/”,
“返回月份”,“\n返回:”,
“返回日”、“/”,
“回归年”、“/”,
“成人”,“\n成人人数:”,
“选项2”,“\n子项数:”;
var submitStr=“”;
对于(变量i=0;i
最好继续问这个问题。谢谢我不知道。谢谢编辑。我还在学习东西。如果存在JSON.stringify
,为什么不JSON.parse
?@MattBall-我养成了使用$.parseJSON()
支持IE7的习惯,但如果我假设支持JSON.stringify()
,那是毫无意义的。更新了我的答案。谢谢,我一定会尝试这个。看起来很简单。我喜欢这种方法,它保持了字符串的完整性。我可以确认这是可行的,但由于某种原因,我的其他JavaScript代码的一部分停止了工作<代码>$(“#searchRequestForm”).submit(函数(){return popitup({site_url}site/submit_search_by_email'),document.getElementById('page-loader').style.display='block';})@user1736969-如果您仍然需要帮助,我建议您发布一个不同的问题,包括浏览器是否在错误控制台中报告任何脚本错误,以及包含popitup()
代码。仅供参考,您不能将多行代码放在注释中并使其可读。多行代码必须进入问题或答案。
function form(id) {
return document.getElementById(id).value;
}
var ids = [
"selectedGateway", "From: ",
"selectedDestination", "\nTo :",
"departureMonth", "\nDeparture: ",
"departureDay", "/",
"departureYear", "/",
"returnMonth", " \nReturn: ",
"returnDay", "/",
"returnYear", "/",
"adults", " \nNumber of adults: ",
"option2", " \nNumber of children: "];
var submitStr = "";
for (var i = 0; i < ids.length; i+=2) {
submitStr += ids[i+1] + document.getElementById(ids[i]).value;
}
localStorage.setItem("string", submitStr);