我知道标题是一个糟糕的标题,除了一个例子,我不知道有什么方法可以解释这个:
$('form').submit(function(){
$(this).find('input').each(function(){
if($(this).hasClass('error'))
return false;
});
});
但是,“return false”返回带有false的“.each()”。如何将“传递”到“.submit()”?
答案 0 :(得分:5)
如果您正在寻找具有类错误的表单中的任何输入,您可以执行以下操作:
return $(this).find('input.error').length == 0;
答案 1 :(得分:2)
简化它。看来如果你发现这个类的一个实例你想要返回false,可以这样做:
$('form').submit(function()
{
return $(this).find('input').hasClass('error') == false;
});
您也可以使用NOT运算符,但选择器IMO看起来很难看。
答案 2 :(得分:1)
因为.each()
方法调用回调函数,所以无法从.each()
回调内部的提交返回。因此,您必须为返回值设置一个变量,然后稍后再返回。
$('form').submit(function(){
var retVal = true;
$(this).find('input').each(function(){
if($(this).hasClass('error'))
retVal = false;
return false;
});
return(retVal);
});
你也可以通过让选择器引擎进行搜索来解决这个问题,而不是像.each()
那样用自己来迭代:
$('form').submit(function(){
if ($(this).find('input.error').length != 0) {
return(false);
}
});
或者更简洁一点:
$('form').submit(function(){
return($(this).find('input.error').length == 0);
});
答案 3 :(得分:0)
在循环外声明一个变量,并在退出循环之前设置,然后返回变量的值:
$('form').submit(function(){
var result = true;
$(this).find('input').each(function(){
if($(this).hasClass('error'))
result = false;
return false; // exit loop
});
return result;
});
答案 4 :(得分:0)
$('form').submit(function(){
var allok = true;
$(this).find('input').each(function(){
if($(this).hasClass('error'))
allok =false;
});
return allok;
});