2010-08-19 65 views
0

我有一个服务器端脚本为我创建了大量的文本字段。当我想让用户填写并提交数据时。我知道有多少个字段,因为服务器也发送一个计数。Javascript for Loop输入字段数组问题与document.getElementById

然后,我试图将它们连成一个间隔很长的长字符串。但是我无法获得数组的值。

用代码更好地解释。

这工作

 <script> 
function Submit() { 
    var spacer = ":"; 
    var mycount = document.getElementById('counter').value; 
    var usertext = ''; 
    var x=0; 
    for(x = 0; x **<= 2**; x++){ 
     usertext = usertext + document.getElementById('description[' + x + ']').value + spacer ; 
    } 
</script> 

这是行不通的。

<script> 
function Submit() { 
    var spacer = ":"; 
    var mycount = document.getElementById('counter').value; 
    var usertext = ''; 
    var x=0; 
    for(x = 0; x **<= mycount**; x++){ 
     usertext = usertext + document.getElementById('description[' + x + ']').value + spacer ; 
    } 
</script> 

这是我的身体

<textarea id='counter' name='counter'>2</textarea> 
<textarea id='description[0]' name=''description'>zero</textarea> 
<textarea id='description[1]' name=''description'>one</textarea> 
<textarea id='description[2]' name=''description'>two</textarea> 
<button type="button" onclick="Submit()" >Save</button> 

这是错误的Firebug给我:

的document.getElementById( “说明” + X + “]”)为空

有没有人知道一种方法来做到这一点?

感谢

+0

注意确保它是相关的问题,但你必须在这里的引号中的问题:'名称= '' description''。请注意“description”前的双重单引号。 – 2010-08-19 01:34:16

+0

德哦..固定,但没有帮助我的问题。 – greg 2010-08-19 01:48:26

回答

1

works fine对我来说,虽然你无效的HTML(例如不平衡引号)。更好的问题是这是什么目的。为什么不直接提交表单呢?

+0

JS小提琴是一个很酷的工具,不知道它存在。 它也适用于我的工具,但在本地复制相同的代码,我不能让它在IE,FF或Chrome中工作。 为什么,因为我实际上必须为旧版应用输出它。 – greg 2010-08-19 01:54:42

+0

@greg,我们需要一个[SSCCE](http://sscce.org/)才能提供帮助。发布一个显示问题的简单完整页面。 – 2010-08-19 02:07:03

+0

哇,所以在制作SSCCE的过程中,我以某种方式修正了它。但不知道如何。如果我解决了,我会发布。奇怪的。谢谢你的家伙 – greg 2010-08-19 02:23:20

1

之前将mycount一个for循环利用mycount整数值与parseInt:如果

var mycount = document.getElementById('counter').value; 
mycount = parseInt(mycount);