从嵌套循环中断:SyntaxError:找不到标签
Break out from nested loop: SyntaxError: label not found
我有一个非常复杂的表单,它需要对其所有元素进行验证,因此从PHP加载此页面已经是一个沉重的负担。
客户希望对字段分组进行验证,这样,当一个分组至少为一行(x个字段)填写了内容时,验证就会通过。正因为如此,我编写了一个函数,当它找到第一行或输入的子组时,我想打断它,这样它就可以进入下一组验证。如果它在组中找不到合适的子组,它应该alert()。
在其他迭代中,我试图使用return来保释,但它还是进入了警报状态。因此,阅读So的帖子,我正在尝试一个标签,以在验证通过后立即退出。看看这些例子,我似乎在做别人建议的事情,但我仍然得到SyntaxError:标签找不到。
好吧,根据MDN文档,它不在我认为的范围内。我已经在层次结构中上下移动了标签,但太靠近嵌套函数使它在这里对我没有用处。
你会采取什么不同的做法?
function checkRows(section) {
agents = ['one', 'two', 'three', 'four','five', 'six', 'seven', 'eight'];
loop1:
for (var key in agents) {
innerElements = jQuery(":input[name^=" + section + "]." + agents[key]);
if (innerElements.length > 0) {
var checked = [];
jQuery.each(innerElements, function(i, element) {
console.log("element " + element + "; length=" + element.value.length);
if (element.value.length > 0) {
checked.push(element);
};
if (checked.length == i) {
break loop1;
}
});
}
}
alert("Please enter at least one set of values for " + section);
}
http://jsfiddle.net/sam452/yj3myafq/3/
您可以尝试使用$.each()jquery函数
"我们可以在特定的迭代中打破$.each()循环,方法是:回调函数返回false。返回非false与for循环中的continue语句;它将立即跳到下一次迭代。"
http://api.jquery.com/jquery.each/
还可以在for循环中调用checkrows()函数
相关文章:
- 气质的“nestRemoting()”有时可以'找不到关系
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- 找不到模块捆绑包
- for循环中的javascript if语句找不到==
- 为什么JavaScript可以'找不到给定的InnerHTML并返回Cannot set property
- 失败:等待Protractor与页面同步时出错:“”;在窗口上找不到角度”;
- Babel编译错误:找不到模块核心js/library/fn/get迭代器
- [Vue warn]:找不到元素
- ngRoute找不到模板
- 未能加载,因为找不到支持的源.当播放HTML5音频元素时
- 因果报应-找不到模块:错误:无法解析模块'scs'
- Angular 2:在本地.json文件上找不到文件
- module.js在运行iron节点时找不到模块
- 页面上有一个“使用”标签,但我找不到“def”标签
- Javascript 找不到脚本标签的 ID
- 标签在IE8中找不到动态创建的元素
- 从嵌套循环中断:SyntaxError:找不到标签
- ' getElementById '在' '标签中找不到元素
- 在reactjs的testtils中找不到带标签的组件
- Jets.js error: Uncaught error: error !找不到搜索标签元素