在For循环中通过Javascript拉取表单变量

时间:2012-05-21 21:46:45

标签: javascript html forms variables

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

        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,但是有很多警告反对它。

任何想法?

3 个答案:

答案 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;