我想从表单中获取所有数据并将其放入可访问的数组中。这是我到目前为止所做的:
var data = $("#everything").serializeArray();
var test = [];
$(data).each(function(index, element) {
test[element] = element.val();
});
我试过了:
alert(data["fname"]);
但即使文本框中有某些内容,也会返回“未定义”,这就是为什么我必须这样做。每种方法。但现在我做的时候
alert(test["fname"]);
它甚至没有弹出消息。有谁知道我做错了什么?我只想将所有表单数据放入一个我可以通过id或输入名称访问的数组。
答案 0 :(得分:5)
关于您的代码的一些事项......首先test
是一个数组,但您将其用作test[element]
之类的对象,这会带来麻烦。然后serializeArray
创建一个对象数组,每个对象包含name
和value
,因此没有element.val()
,而且我很确定element
是DOM元素所以你必须将它包装在像$(element).val()
这样的jQuery中,或者使用像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;
}