我有一个包含39个文本输入字段的表单。他们的id是input1,input2 ... input39。我想要做的是,如果他们中的任何一个不包含任何值,那么我的脚本将删除它没有问题。问题是,当我逐个检查这些文本字段的值时,它工作正常但是当我使用循环时它显示错误。所以我在firebug控制台中运行了一个非常简单的测试..
var i=1;
var asd="";
asd='input' + i;
var test=document.getElementById(asd).value;
asd="";
test;
如果我在firebug控制台中运行上面的代码然后它工作正常,显示第一个文本框的值。但..
var i=1;
var asd="";
for(i=1;i<39;i++)
{
asd='input' + i;
var test=document.getElementById(asd).value;
asd="";
test;
}
如果我运行此代码,那么我得到 TypeError:document.getElementById(...)为null
任何想法为什么会这样?所有文本框的默认值都是“”(空字符串)..
答案 0 :(得分:1)
在你的循环中的某个地方,你正在调用一个不存在的ID。确保您的输入ID符合您的预期,并确保您的循环在适当的时间结束。例如,如果您有要输入的ID38,请确保您的循环不会转到input39。并确保循环的每次迭代都有ID(例如input1 - 38)。
答案 1 :(得分:-1)
首先,您必须将for循环的限制设置为40或&lt; = 39以包含第39个元素。
试试这个:
for (var i=1;i<=39;i++) {
var asd = 'input' + i;
var test = document.getElementById(asd).value;
test;
}