将所有表单值获取到javascript数组中

时间:2014-08-20 23:52:39

标签: javascript jquery html arrays

我试图将所有表单值都放到普通数组[]中。我有它为标签工作,但后来我添加了一些标签,似乎无法得到它。

只使用标签就可以使用

var content = document.querySelectorAll("#form input[name='content[]']");

我目前正在尝试这样的事情

var content = document.elements["content[]"].value;

此表单可以随着用户输入而改变,因为表单的每个部分都是他们选择添加的模块。按顺序获取值也很重要,如果不可能那么我需要将其设为JSON数组。无论如何,纯粹的javascript或jquery都很好。

感谢您的帮助。

修改

我用它来解决我的问题

  var contents=[]
  var content = $('#form').serializeArray()
  for (var i = 0; i < content.length; i++) {
    contents[contents.length]=content[i].value
  };

1 个答案:

答案 0 :(得分:1)

尝试

HTML

<form id="form">
    <input type="text" name="content[]" value="abc" />
    <textarea name="textarea" value="">123</textarea>
</form>

JS

$(function() {
  var form = $("#form");
    // escape `[]`
    var content = form.find("input[name=content\\[\\]]");
    // array `literal declaration` 
    var _arr = [content.prop("value")];
    // map all form values to single array
    var arr = $.map(form.serializeArray(), function(v, k) {
      return [v.value]
    });
    // array literal with `textarea` `value`
    var t = [$("textarea").prop("value")];
    console.log(_arr, arr, t); 
    // _arr: `["abc"]` , arr:`["abc", "123"]` t:`["123"]` 
})

Demo

请参阅Arrays