如何在页面上有多个同名的输入框?

时间:2011-02-17 18:29:13

标签: javascript html

我正在制作一个网页。它有一些输入字段分组到一个部分,然后在该部分下面是一个“添加另一个”按钮。该按钮将使用JavaScript向页面添加另一个相同的部分;相同的表格字段。

然后在页面下方有一个“计算”按钮。它运行一些其他JavaScript,需要通过jQuery访问这些输入字段。

在网页上有多个重复的input元素的推荐方法是什么?我知道不应该有两个具有相同ID的元素,但是同一个名称的两个元素会发生什么?他们可以单独访问吗?或者我应该用JavaScript命名这些输入元素,例如在名称的末尾添加“1”,“2”等,然后使用循环? (看起来很乱)

我应该如何识别和访问这些相同的输入字段组?

4 个答案:

答案 0 :(得分:1)

您可以使用document.getElementsByName('name')然后循环结果以获取每个值。

答案 1 :(得分:0)

只要他们有不同的id s,就可以毫无困难地使用相同的名称。

当您提交它们时,服务器将获得重复的名称/值对,并且在处理它们时需要注意这一点。不同的语言在他们如何做到这一点上有所不同,你必须查阅适当的文档,了解如何使用你正在使用的任何文件。

答案 2 :(得分:0)

  

在网页上有多个重复的input元素的推荐方法是什么?

做吧。

  

我知道不应该有两个具有相同ID的元素,但两个同名元素会发生什么?

JS可用于通过名称访问它们的任何方法都会为您提供集合而不是元素。您可以像数组一样访问各个元素(包括使用forcollection.length进行循环)。

  

可以单独访问吗?

如果您按名称访问它们,则可以使用它们的索引。 (collection[0])。

如果您想访问特定的ID,也可以给它们。

如果您想将元素链接在一起并让它们相互引用,那么您可以使用DOM结构来帮助您。

一个非常简单的例子:

<div>
    <input>
    <button onclick="alert(this.parentNode.getElementsByTagName('input')[0]);">...</button>
</div>

显然,在现实世界中你应该使用unobtrusive JSbuild on things that work

答案 3 :(得分:0)

您可以将名称指定为数组
例如:

<input type="text" name="textBox[]"/>

您可以在点击“添加另一个”按钮时附加相同的表单。您可以使用textBox [0],textBox [1]等

来访问它们