迭代相同的表单元素

时间:2010-03-24 06:34:26

标签: javascript html javascript-events

如果表单重复使用相同的标签。

如何在javascript中获取其价值。

    <script>
     function validate()
      {
        //get all values of elmone
      }
     </script>


<form>
<input type="text" size="15" value="Hello World" name="elmOne">
<input type="text" size="15" value="next Hello World" name="elmOne">
 <input type="button" onclick="javascript:validate()" value="validate">
</form> 

谢谢..

4 个答案:

答案 0 :(得分:2)

将两个不同的文本输入元素命名为通用名称并不常见。但是,回到问题,你总是可以使用document.getElementByName('elmOne');获取匹配输入的列表,然后遍历它以获取值

var input_list = document.getElementsByName('elmOne');

for(var i = 0; i < input_list.length; i++) {
    // either way should get you the value
    console.debug(input_list[i].value, input_list[i].getAttribute('value'));
}

您可能需要参考此page以获取有关兼容性的更多信息

答案 1 :(得分:1)

您可以使用 document.forms 属性来获取文档表单数组,从索引0开始,HTML代码中出现第一个表单元素,依此类推。或者您可以使用名称作为数组索引来访问具有“name”属性的表单。因此,要访问HTML代码中的第一个表单,请使用:

var f = document.forms[0];

如果表单的名称类似于“loginForm”,您可以像:

var f = document.forms['loginForm'];

现在您有对表单的引用,您可以使用表单的.elements属性访问其中的元素。此属性是一个具有与document.forms相同的索引属性的数组。因此,您可以使用数字索引按HTML代码中的顺序访问每个元素,第一个使用0,或者通过将每个元素的name属性作为索引来使用命名索引。

所以要访问您可能使用的表单中的第二个元素:

var el = f.elements[1];

或者如果元素的name属性为“username”,则可以通过以下方式引用它:

var el = f.elements["username"];

这样您就可以引用文档中任何形式的任何元素。

答案 2 :(得分:0)

var elem = document.form.all.namedItem("elmOne")将返回所需元素的数组。然后只需遍历它并使用elem.value

获取值

答案 3 :(得分:0)

var items = document.getElementsByName("elmOne");
for (var i = 0; i < items.length; i++) {
   var item = items[i];
}

但是,这会在IE中出现一些意想不到的行为。有关详细信息,请参阅this question。基本思想是Microsoft的这个功能的实现与其他浏览器的实现不同。因此,您可以跨浏览器获得相互矛盾的结果。

解决方案是找到一种不同的方式来关联这些元素,并使用它来获取所需的项目。