我有一个非常复杂的表单需要对其所有元素进行验证,因此从PHP加载此页面已经有很大的负担。
客户希望验证字段分组,以便在分组中填写了至少一行(x个字段)验证通过的内容时。因此,我写了一个函数,当它找到第一行或输入的子组时,我想要打破它,这样它就可以进入下一组验证。如果在组内找不到合适的子组,则应该发出警报()。
在其他迭代中,我试图使用返回保释,但无论如何它继续发出警报。因此,阅读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);
}
答案 0 :(得分:1)
您可以尝试使用$ .each()jquery函数
“我们可以通过制作在特定的迭代中打破$ .each()循环 回调函数返回false。返回非假是与之相同 for循环中的continue语句;它会立即跳到 下一次迭代。“
http://api.jquery.com/jquery.each/
你也可以调用for循环中的checkrows()函数