加载表单数据到字符串然后到localStorage的最佳方式是什么?
What is the optimal way to load form data into a string and then to localStorage?
这是加载表单数据到字符串然后到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>
我将使用类似下面的东西,这样我就可以处理一个对象及其属性,而不是一个大字符串。请注意,除了jQuery选择器之外,这是纯JavaScript。
演示:http://jsfiddle.net/grTWc/1/
var data = {
sg: $("#selectedGateway").val(),
sd: $("#selectedDestination").val()
// items here
};
localStorage.setItem("mykey", JSON.stringify(data));
检索数据:
var data = JSON.parse(localStorage["mykey"]);
alert(data.sg);
参见:
- https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/JSON/stringify
- http://api.jquery.com/jQuery.parseJSON/
我更喜欢表驱动的方法,这样就没有重复的代码(DRY):
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);
你可以定义一个像下面这样的函数来直接通过id获取值,这样当你构建你的字符串时就会更简单。
function form(id) {
return document.getElementById(id).value;
}
相关文章:
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 为react组件传递道具的最佳方式
- 让Webpack管理Quirky AMD定义的最佳方式
- 在承诺链中处理早期回报的最佳方式
- 在ng重复循环中显示条件内容的最佳方式是什么
- 在phonegap中为android调用onload函数的最佳方式
- 链接两个网页或网络应用程序的最佳方式
- 什么's是连接供应商js文件的最佳方式
- 什么's是在javascript中迭代项的最佳方式
- 以编程方式填充组合框道场 (1.8) 的最佳方法是什么?
- 在node.js中编写单元测试的最佳方式是什么
- 在页面上记录数据并实现pushstate()的最佳方式
- 使用AJAX在Rails中提交动态表单的最佳方式是什么
- 什么'这是加载jQuery的最佳方式
- 将大数组(字符串和类型数组的混合物)存储到blob或文件中/从blob或文件检索大数组的最佳方式
- 在网站上显示.mov作为加载屏幕的最佳方式
- 使用Angular存储用户以前是否选中过复选框,然后再调用它的最佳方式是什么
- 以角度渲染表中数据的最佳方式
- 删除集合中旧邮件/帖子的最佳方式
- 在Zend项目中实现Google Analytics/任何Javascript的最佳方式/最佳实践(适用于所有页面)