如何在javascript中正确循环表单元素

时间:2010-11-21 02:29:43

标签: javascript arrays forms

我要做的是从每个表单元素中获取值为'text'的值。你能教会我从文本框中获取值并使用javascript输出这些值的正确方法吗?

<head>
<script type="text/javascript">
function trap(){
for(var i=0; i<document.x.elements.length; i++)
{
document.write(document.x.elements[i].value + "<br />");
}
}
</script>
</head>
<body>


<form name="x">

<?php
for($i=0;$i<2;$i++){
?>

qty #<?php echo $i; ?>
<input type="text" name="qty[<?php echo $i; ?>]" value=""/>
<img src="add-icon.png" onmouseover="trap();">

<?php } ?>

</form>

</body>

我检查了它是否获得了text类型的正确数量的表单元素:

document.write(document.x.elements.length);

它与我在php for loop中指定的数字相同。但是我只获得了元素#1的值。它似乎不是从qty[1]

获取值

请帮忙。感谢

1 个答案:

答案 0 :(得分:2)

你遇到的另一个问题是:

您在函数中使用document.write()。加载页面后无法使用此方法,因为它会覆盖整个文档 - &gt;功能本身。在第一次调用write之后,函数不再存在,你得到一个新文档,其中只包含你刚才写的数据。

使用而不是write()其他方法,例如这应该有效:

document.body.appendChild(document.createTextNode(document.x.elements[i].value ));
document.body.appendChild(document.createElement('br'))