0

我有一个基于用户输入填充表单字段的网页,如下所示:

        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>';
}

哪个...没有。我取得的最后一个显着进步是让它吐出“null”,这根本不是真正的进步。我看过 eval ,但有很多警告反对它。

有任何想法吗?

4

3 回答 3

1

我想你想要

document.getElementById('CName' + n).value

(其中 n 在引号之外)

于 2012-05-21T21:48:42.693 回答
1

那么它应该是 'CName' + n - 即,你把引号放在了错误的地方

于 2012-05-21T21:49:08.233 回答
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;
于 2012-05-22T00:34:13.687 回答