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

Pulling Form Variables through Javascript in a For Loop

本文关键字:表单 变量 Javascript For 循环      更新时间:2023-09-26

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

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

有什么想法吗?

我想你想要

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

(其中 n 在引号之外(

好吧,它应该是"CName"+ n - 即,你在错误的地方得到了引号

如果所有控件都在窗体中,则可以按以下方式访问它们:

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;