如果else块内的循环返回true而不是强制false

时间:2013-12-19 22:02:14

标签: javascript

我有以下javascript代码块用于快速表单验证:

    if(IsEmail(email) == true && name.length > 0 && sport.length > 0) {
        return true;
    } else {

        if(name.length < 1){
            fields = fields.trim() + " Name, ";
        } 
        if(sport.length < 1) {
            fields = fields.trim() + " Sport, ";
        }
        if(!IsEmail(email)) {
            fields = fields.trim() + " Email, ";
        }
        alert("The following fields are invalid or missing: " +fields.trim());
        return false;
    }

由于某种原因,else块的计算结果为true,或者它永远不会到达alert()并且不返回false。表格已提交。如果我删除if语句,它确实按预期工作,并返回false并带有alert()。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

首先,如果使用 return 语句,则不需要 else 语句。因为它只是没用。

只有在我执行上面的代码时,才能执行 if 块。换句话说,如果声明是 true 。所以流量根本没有进入其他地方。一种可靠的方法是将警报作为if和else的第一行用于调试目的。