我有一个服务器端脚本为我创建了大量的文本字段。当我希望用户填写它们并提交数据时。我知道有多少字段,因为服务器也会发送一个计数。
然后我尝试将它们连接成一个带有间隔符的长字符串。但是我无法获得数组的值。
使用代码更好地解释。
这有效
<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 :(得分:1)
尽管您的HTML无效(例如不平衡报价),但我works fine。更好的问题是这个目的是什么。为什么不按原样提交表格?
答案 1 :(得分:1)
在将mycount
应用于for循环之前,请使用mycount
取整数值parseInt
:
var mycount = document.getElementById('counter').value;
mycount = parseInt(mycount);