【问题标题】:Jquery Put serialize data into arrayJquery将数据序列化到数组中
【发布时间】:2012-09-07 06:38:46
【问题描述】:

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

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

我试过了:

alert(data["fname"]);

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

alert(test["fname"]);

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

【问题讨论】:

  • console.log(data)是做什么的;显示...
  • It's working for me. 你能发布你的代码吗?另外,请确保您的输入具有名称属性。

标签: jquery arrays serialization each


【解决方案1】:

关于您的代码的一些事情...首先test 是一个数组,但您将它用作test[element] 之类的对象,这会造成麻烦。然后serializeArray 创建一个对象数组,每个对象包含namevalue 所以没有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;
}

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

【讨论】:

    猜你喜欢
    • 2012-11-11
    • 2013-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    相关资源
    最近更新 更多