我有一个基于用户输入的网页填充表单字段,如下所示:
function Go2() {
var loans = document.getElementById('count').value;
var content = document.getElementById('stage3').innerHTML;
content = '<TABLE Width="100%">'
+'<TR>'
+'<TD Style="font-weight:bold;" Width="30%">Customer Name</TD>'
+'<TD Style="font-weight:bold;" Width="30%">Customer Number</TD>'
+'<TD Style="font-weight:bold;" Width="30%">Origination Date</TD>'
+'</TR>'
+'</TABLE>';
document.getElementById('stage3').innerHTML = content;
for(var i=0; i<loans; i++) {
content = document.getElementById('stage3').innerHTML;
document.getElementById('stage3').innerHTML = content
+ '<TABLE Width="100%">'
+ '<TR>'
+ '<TD Width="30%"><INPUT Name="CName'
+ i
+ '" Size="40" Type="text"></TD>'
+ '<TD Width="30%"><INPUT Name="CNumber'
+ i
+ '" Size="40" Type="text"></TD>'
+ '<TD Width="30%"><INPUT Name="Date'
+ i
+ '" Size="40" Type="text"></TD>'
+ '</TR>'
+ '</TABLE>';
}
content = document.getElementById('stage3').innerHTML;
document.getElementById('stage3').innerHTML = content
+ '<TABLE><TR><TD><INPUT Type="Button" Value="Submit" onClick="Go3()"></TD></TR></TABLE>';
}
现在我需要做的是遍历表单并为每个表单字段提取值。这就是我所得到的:
for (var n=0; n<loans; n++) {
content += '<TR>'
+ '<TD Colspan="2">'
+ document.getElementById('CName + n').value
+ '</TD>'
+ '<TD Colspan="2">'
+ document.getElementById('CNumber + n').value
+ '</TD>'
+ '<TD>'
+ document.getElementById('Date + n').value
+ '</TD>'
+ '</TR>';
}
哪个......没什么。我最后一个值得注意的进展是让它吐出“空”,这根本不是真正的进步。我看过eval,但是有很多警告反对它。
任何想法?
答案 0 :(得分:1)
我想你想要
document.getElementById('CName' + n).value
(其中n在引号之外)
答案 1 :(得分:1)
那应该是'CName'+ n - 即你在错误的地方得到了引号
答案 2 :(得分:0)
如果您的所有控件都在表单中,那么您可以按以下方式访问它们:
var allControls = document.<formId>.elements;
或
var allControls = document.forms[formId].elements;
然后遍历控件列表以获取值。表单控件必须具有成功的名称,不需要ID。您还可以获取值:
var value = allControls['CName' + n].value;
或只是
var form = docment.forms[formID];
var value = form['CName' + n].value;