0

有没有更好的方法来实现下面的代码

<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 会更改。有没有更好的方法来实现这一点?

谢谢

4

1 回答 1

1

您可以使用 json.stringify 方法制作 JSON 字符串。使用 json 库,chrome 和 ff 已在此方法中构建。

http://json.org/

首先,您必须为这样的数据创建 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);
};
于 2012-08-04T08:04:27.583 回答