6

我设置了一个表单,以便有一个添加按钮,以便我的用户可以一次向该站点提交多个人。

起初,表格有一个输入来填写人名,下面是一个示例

<input type="text" name="name[]" value="Name" /> 

如果他们点击添加按钮,则会附加另一个按钮,以便我留下以下内容

<input type="text" name="name[]" value="Name" /> 
<input type="text" name="name[]" value="Name" /> 

然后,当他们点击提交时,我试图在 Javascript 中获取每个名称的值并遍历它们我已经尝试过,但它不起作用

var inputs = document.getElementById('formIDhere').getElementsByTagName('name');
alert(inputs.length);

我从来没有收到警报,如果我只是设置这样的循环

for(int i=0; i<inputs.length; i++)

什么都没有发生,任何关于在 javascript 中遍历 name[] 值的帮助将不胜感激

4

8 回答 8

5

我想你可以试试:

var inputs = document.querySelectorAll("#formIDHere input[name='name[]']");
alert(inputs.length);
for (i = 0; i < inputs.length; i++) {
    // your code here
}
于 2013-09-25T16:34:26.810 回答
4

简单的方法:

var names=document.getElementsByName('name[]');

for(key=0; key < names.length; key++)  {
    alert(names[key].value);

    //your code goes here
}
于 2015-02-15T20:17:58.810 回答
1
[...document.querySelector("#FORMID").elements['name[]']].map(el=>el.value); 
// Returns ["name","name",...]
于 2019-03-19T13:12:35.293 回答
0

I think you can use document.getElementById('formIDhere').elements.name.

It will give you an array with all the values.

于 2013-09-25T16:22:53.903 回答
0

getElementsByTagName返回参数中指定标签名称的元素数组。在 html 中没有标签名称为 的元素name

name是赋予 html 元素的属性。要根据名称获取元素,您可以使用

var ele=document.getElementsByName('whatevername');

ele将包含指定名称的元素数组。然后,您可以使用循环遍历每个元素。

于 2013-09-25T16:36:52.627 回答
0

这就是表单元素的用途

var inputs = document.getElementById('formIDhere').elements["name[]"];
alert(inputs.length);
for (i = 0; i < inputs.length; i++) {
    // your code here
}
于 2014-06-26T15:52:43.663 回答
0

你的错误是 using getElementsByTagName,它要求一个名为 的标签<name>,当然你没有它,尝试为输入设置一个类并使用 jquery 获取它$('className'),这肯定会得到正确的结果,或者使用 dom 你可以仍在使用 document.getElementById('form').elements.name,但除非经过仔细测试,否则这种方式可能不是跨浏览器安全的

于 2013-09-25T16:25:51.397 回答
0

使用JQuery你可以尝试:

   var arr = $('#frmId').serializeArray();

serialize方法提供了几个可以签入的选项:https ://api.jquery.com/serializearray/

于 2020-10-26T19:26:39.320 回答