退出FOR循环

时间:2013-11-12 16:01:19

标签: javascript

我正在动态地将文本字段(最多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();}

3 个答案:

答案 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?我希望它是一个与最后一个动态添加字段的编号匹配的变量。

相关问题