我正在制作一个网页。它有一些输入字段分组到一个部分,然后在该部分下面是一个“添加另一个”按钮。该按钮将使用JavaScript向页面添加另一个相同的部分;相同的表格字段。
然后在页面下方有一个“计算”按钮。它运行一些其他JavaScript,需要通过jQuery访问这些输入字段。
在网页上有多个重复的input
元素的推荐方法是什么?我知道不应该有两个具有相同ID的元素,但是同一个名称的两个元素会发生什么?他们可以单独访问吗?或者我应该用JavaScript命名这些输入元素,例如在名称的末尾添加“1”,“2”等,然后使用循环? (看起来很乱)
我应该如何识别和访问这些相同的输入字段组?
答案 0 :(得分:1)
您可以使用document.getElementsByName('name')
然后循环结果以获取每个值。
答案 1 :(得分:0)
只要他们有不同的id
s,就可以毫无困难地使用相同的名称。
当您提交它们时,服务器将获得重复的名称/值对,并且在处理它们时需要注意这一点。不同的语言在他们如何做到这一点上有所不同,你必须查阅适当的文档,了解如何使用你正在使用的任何文件。
答案 2 :(得分:0)
在网页上有多个重复的
input
元素的推荐方法是什么?
做吧。
我知道不应该有两个具有相同ID的元素,但两个同名元素会发生什么?
JS可用于通过名称访问它们的任何方法都会为您提供集合而不是元素。您可以像数组一样访问各个元素(包括使用for
和collection.length
进行循环)。
可以单独访问吗?
如果您按名称访问它们,则可以使用它们的索引。 (collection[0]
)。
如果您想访问特定的ID,也可以给它们。
如果您想将元素链接在一起并让它们相互引用,那么您可以使用DOM结构来帮助您。
一个非常简单的例子:
<div>
<input>
<button onclick="alert(this.parentNode.getElementsByTagName('input')[0]);">...</button>
</div>
显然,在现实世界中你应该使用unobtrusive JS和build on things that work。
答案 3 :(得分:0)
您可以将名称指定为数组
例如:
<input type="text" name="textBox[]"/>
您可以在点击“添加另一个”按钮时附加相同的表单。您可以使用textBox [0],textBox [1]等
来访问它们