JavaScript返回错误后执行代码

Lon*_*Int 2 javascript

我正在使用一个函数来检查是否填写了必填字段.我有这两个功能,应该做同样的事情,但第一个没有.在遇到退货后,javascript不应该停止执行代码吗?

此函数返回true:

//Checks if various stages are ready
function trnReady(area) {
    switch (area)
    {
        case 'settings':
            $('input.required').each(function(){

                if($(this).val() == '')
                {
                    return false;
                }
            }); 
        break;
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

虽然这个返回false:

//Checks if various stages are ready
function trnReady(area) {
    var r = true;
    switch (area)
    {
        case 'settings':
            $('input.required').each(function(){

                if($(this).val() == '')
                {
                    r = false;
                }
            }); 
        break;
    }
    return r;
}
Run Code Online (Sandbox Code Playgroud)

我以为第一次返回会停止执行代码?我想知道它是否与范围有关?

Nay*_*est 5

在第一个代码片段中,return false;只停止执行传递给jquery的每个方法的内部函数.它还相应于jquery API停止jquery迭代.但无论如何,trnReady都会返回true.

第二个代码片段是正确的,但您可以优化它,替换r = false;return r = false;(当您已经知道其中一个字段未填充时,它将停止通过jquery迭代)