3

我想从我的表单中获取所有数据并将其放入可访问的数组中。这是我到目前为止所拥有的:

var data = $("#everything").serializeArray();
var test = [];
$(data).each(function(index, element) {
    test[element] = element.val();
});

我试过这个:

alert(data["fname"]);

但是即使文本框中有东西,它也会返回“未定义”,这就是为什么我必须这样做 .each 方法。但现在当我这样做时

alert(test["fname"]);

它甚至不会弹出消息。有谁知道我做错了什么?我只想将所有表单数据放入一个数组中,我可以通过输入的 id 或名称访问该数组。

4

1 回答 1

5

关于您的代码的一些事情......首先test是一个数组,但您将它用作像这样的对象test[element],这会造成麻烦。然后创建一个对象数组serializeArray,每个对象都包含namevalue所以没有为您提供您正在寻找的价值。试试这个:element.val()element$(element).val()element.value

var data = $('#myform').serializeArray();
var obj = {};
for (var i = 0, l = data.length; i < l; i++) {
    obj[data[i].name] = data[i].value;
}

演示:http: //jsfiddle.net/elclanrs/KRbPg/

于 2012-09-14T06:03:39.317 回答