我正在使用一个函数来检查是否填写了必填字段。我有这两个功能,应该做同样的事情,但第一个没有。 javascript 是否应该在遇到返回后停止执行代码?
这个函数返回真:
//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;
}
虽然这个返回 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;
}
我以为第一个 return 会停止执行代码?我想知道它是否与范围有关?
最佳答案
在第一个代码片段中,return false;
仅停止执行传递给 jquery each 方法的内部函数。它还根据 jquery API 停止 jquery 迭代。但无论如何 trnReady 都会返回 true。
第二个代码片段是正确的,但你可以优化它,将 r = false;
替换为 return r = false;
(当你已经知道其中一个字段未填写)
关于错误返回后 JavaScript 执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10981604/