我无法让这个工作:
function formvalidation()
{
var SiteNum= document.getElementsByName("sitesinput")[0].value;
var i=1;
while (i<=SiteNum)
{
var SitePhone= document.getElementsByName(site['i'])[0].value;
alert(SitePhone);
i++;
}
}
如果我这样警告:alert('document.getElementsByName(site["'+i+'"])[0].value');
它将显示以下内容:
document.getElementsByName(site["1"])[0].value
document.getElementsByName(site["2"])[0].value
document.getElementsByName(site["3"])[0].value
但我不能让它进入变量。
感谢您的关注, 乙
答案 0 :(得分:1)
尝试替换
行var SitePhone= document.getElementsByName(site['i'])[0].value;
的
var SitePhone= document.getElementsByName(site[i])[0].value;
答案 1 :(得分:0)
你在i行周围加上引号
var SiteNum = document.getElementsByName(site['i'])[0].value
正在查找由字符串'i'键入的元素,而不是变量i的值。尝试删除引号。
答案 2 :(得分:0)
尝试
alert(document.getElementsByName(site[i])[0].value);
答案 3 :(得分:0)
从i
删除引号。使用for
循环,因为它比while
循环更适合用例。
function formvalidation()
{
var SiteNum= document.getElementsByName("sitesinput")[0].value,
SitePhone;
for(var i=1; i<=SiteNum; i++)
{
SitePhone = document.getElementsByName(site[i])[0].value;
alert(SitePhone);
}
}
此外,JavaScript没有块级范围,只有函数级。
我喜欢这个解决方案,但是如果没有引号(“)它就不会工作,即如果一切都一样,但把名字放在我自己身上,就像(”site [1]“) - 它会起作用。
我知道你现在要去哪里了。
SitePhone = document.getElementsByName('site[' + i + ']')[0].value;