将所有表单值获取到javascript数组中
我正在尝试将所有表单值放入普通数组[]。我有它的工作标签,但后来我添加了一些标签,似乎无法得到它 只需使用标签就可以了将所有表单值获取到javascript数组中,javascript,jquery,html,arrays,Javascript,Jquery,Html,Arrays,我正在尝试将所有表单值放入普通数组[]。我有它的工作标签,但后来我添加了一些标签,似乎无法得到它 只需使用标签就可以了 var content = document.querySelectorAll("#form input[name='content[]']"); 我现在正在尝试类似的东西 var content = document.elements["content[]"].value; 由于表单的每个部分都是用户选择添加的模块,因此该表单可以随着用户输入的变化而变化。按顺序获取值也很
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
};
var contents=[]
var content=$('#form')。序列化数组()
对于(变量i=0;i
试试看
html
请参见我建议看一看jQuery的serializeArray注意,在Java脚本中,数组不能有键字符串,只能有数字(您可以强制输入名称,它们将被使数组成为实际数组的位完全忽略,如.length、.forEach()等)。如果您想要一个“dictionary”类型的对象,那么实际上您想要一个常规JavaScript对象。@kinakuta在研究之后,它正是我想要的。只是按顺序提取了值。用我用过的答案更新了这个问题。一个简短的描述将与答案一起适用。这是否也找到了内容?我用解决方案更新了OP。@SDLA4从未尝试
textarea
,尽管var\u arr=[content.prop(“value”)对于textarea
,code>应返回相同的值。问题可能是在名称
中转义了[]
?谢谢
<form id="form">
<input type="text" name="content[]" value="abc" />
<textarea name="textarea" value="">123</textarea>
</form>
$(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"]`
})