我正在动态地将文本字段(最多32个)添加到我的页面中,我需要查看所有这些字段并检查,如果所有这些字段都为空,我将显示一条警告消息!我不想使用 document.getElementsByTagName('input')因为我在页面上有其他动态的文本文件!
我不知道为什么当我在下面使用此代码时,它不允许我退出FOR循环并打印警告('测试')并打印警告?
任何人都可以帮我解决这个问题!谢谢!
var counter=0
for(var i = 1; i <= 32; i++){
var e = document.getElementById('mytextfieldid'+i).value;
if(e==''){}
else{counter++;}
}
alert('Test');
if(counter==0){DisplayWarning();}
答案 0 :(得分:2)
写作时
document.getElementById('mytextfieldid'+i).value
您认为document.getElementById('mytextfieldid'+i)
存在。如果不是,它将引发错误并停止代码执行。
您需要在访问该值之前测试该元素。
var element = document.getElementById('mytextfieldid'+i);
if(element){
// update your counter...
}
答案 1 :(得分:1)
如果要检查所有元素是否为空,您可能想尝试使用标记。如果有任何值被击中,请更改标志并跳出循环。
注意:休息往往会让事情变得更难以理解。
var empty = true;
for(var i = 1; i <= 32; i++){
var e = document.getElementById('mytextfieldid'+i);
if(e && e.value !=''){
console.log(e);
empty = false;
break;
}
}
alert('Test');
if(empty){DisplayWarning();}
答案 2 :(得分:0)
如果元素的数量是可变的,为什么循环总是变为32?我希望它是一个与最后一个动态添加字段的编号匹配的变量。