【发布时间】:2014-03-17 13:01:55
【问题描述】:
我正在尝试检查我的表单中需要的所有字段 (isRequired=true) 是否都已完成。 我通过将表单结构(assesmentForm)与用户响应(在 $scope 上)进行比较来做到这一点。 我不想知道有关该字段的一些详细信息(从 VF 开始),并且我希望它在找到未完成的字段后停止。 问题是当我在 forEach 循环中使用“return”时 - 而不是离开 forEach 它进入下一次迭代(下一个函数)。我尝试使用:中断、继续、标记等 我真的需要帮助
function checkFieldsValidation () {
var VFflag =true; //Validation Failed Flag - true: not failed, False - failed
assessmentForm.Objectives.forEach(function(o){
if (VFflag){
o.component.Fields.forEach(function(f){
if (VFflag){
if (f.IsRequired ){
for (var i in $scope.responses )
{
if( $scope.responses[i].objectives[o.relationship.ActivityRelationshipID][f.FieldID].value.length>0){
VFflag=VFflag;
}
else
{
var VFparIndex=i;
var VFActivityRelationshipID=o.relationship.ActivityRelationshipID;
var VFFieldID = f.FieldID;
VFflag=false;
return;
}
}
}
}
else {return;}
}
)
} else {return;}
}
)
return [VFflag,VFparIndex,VFActivityRelationshipID,VFFieldID];
}
【问题讨论】:
-
在 forEach 中,如果您返回除 'false' 以外的任何内容,它会继续循环,直到找不到确实返回 false 的对象。所以你需要返回false来打破循环
-
嗨隆博施。我试图返回 VFflag (这是错误的),它仍然停留在 foreach 循环中,所以我想这不是答案。感谢任何方式
标签: javascript angularjs foreach