有没有更好的方法来实现以下代码
<form id="myform" onsubmit="return saveUserData('firstname','lastname');" method="post">
function saveUserData() {
createJSONString(arguments);
return false;
}
function createJSONString(arguments) {
var userDetails = "{";
for (i = 0; i < arguments.length - 1; i++) {
userDetails += '"' + arguments[i] + '":' + '"' +document.getElementById(arguments[i]).value + '",';
}
userDetails += '"' + arguments[i] + '":' + '"' + document.getElementById(arguments[i]).value + "}";
alert(userDetails);
}
基本上,从表单提交按钮调用函数saveUserData。因此,我们的想法是将参数传递给函数并创建类似字符串的JSON,以便将其存储在Chrome和Firefox的localStorage变量中。这个想法不会让OCP失败,因为将来如果我们添加中间名,JavaScript代码不需要改变,只会改变HTML。 有没有更好的方法来实现这个?
由于
答案 0 :(得分:1)
你可以使用json.stringify方法制作JSON字符串。 使用json库,chrome和ff构建了这种方法。
首先你必须为这样的数据制作javascript对象。
var data = {
name : 'blu..',
age : 19
};
JSON.stringify(data);
// result is => "{"name":"blu..","age":19}"
function createJSONString(arguments) {
var obj = {};
for (i = 0; i < arguments.length - 1; i++) {
obj[arguments[i]] = document.getElementById(arguments[i]).value;
}
return JSON.stringify(obj);
};