[英]Cycling through an array of form elements
我正在将表单元素从ajax返回到表单中。 我可以计算返回的元素数,但我不知道如何循环遍历它们。 我需要能够获取返回的每个元素的值。
我很确定这是我不知道的基本javascript内容。 使用Ajax只会使问题看起来更加复杂。
我的代码如下所示:
// The view page
<html>
<head>
<script language="javascript">
function calculateAlphaTotals(){
var length = document.myForm["alpha[]"].length;
alert( length ); // correctly outputs 3
for( var i = 0; i < length; i++ ){
try{
alert( document.myForm["alpha[]"].value ); // HTML ObjectCollection
alert( document.myForm["alpha["+i+"]"].value ); // Object Required
} catch( error ) { }
}
}
</script>
</head>
<body>
<form name="myForm" id="myFormId" method="post">
<div id="ajaxOutputId"></div>
</form>
</body>
</html>
// The Ajax page:
<input name="alpha[]" onchange="calculateAlphaTotals()" />
<input name="alpha[]" onchange="calculateAlphaTotals()" />
<input name="alpha[]" onchange="calculateAlphaTotals()" />
在正确的位置使用index -[]
运算符:
var x = document.myForm["alpha[]"];
for( var i = 0; i < x.length; i++ ){
var currentValue = x[i].value;
alert(currentValue);
}
您的: document.myForm["alpha["+i+"]"]
更改字符串,而不是迭代集合。
尝试使用document.myForm["alpha[]"][i].value
代替document.myForm["alpha["+i+"]"].value
所以你的功能会像这样
function calculateAlphaTotals(){
var length = document.myForm["alpha[]"].length;
alert( length ); // correctly outputs 3
for( var i = 0; i < length; i++ ){
try{
alert( document.myForm["alpha[]"][i].value ); // Object Required
} catch( error ) { }
}
}
您已经很接近了,但是您需要更改一件事。 document.myForm["alpha[]"]
实际上是一个数组,因此,如果要循环遍历它,则需要像这样在末尾添加i
索引: document.myForm["alpha[]"][i]
<script language="javascript">
function calculateAlphaTotals(){
var els = document.myForm["alpha[]"];
for(var i = 0, ceiling = els.length; i < ceiling; i++){
alert(document.myForm["alpha[]"][i].value);
}
}
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.