传递"返回false"jQuery中函数之间的关系
Passing "return false" between functions in jQuery
我知道这个标题是一个糟糕的标题,我不知道有什么方法来解释这一点,除了用一个例子:
$('form').submit(function(){
$(this).find('input').each(function(){
if($(this).hasClass('error'))
return false;
});
});
然而,"return false"返回的是带有false的".each()"。我如何将它"传递"到"。submit()"?
如果您正在查找表单中有类错误的任何输入,您可以:
return $(this).find('input.error').length == 0;
简化一下。如果您发现该类的一个实例,您似乎希望返回false,可以这样做:
$('form').submit(function()
{
return $(this).find('input').hasClass('error') == false;
});
你也可以使用NOT操作符,但是在选择器中看起来很难看。
因为.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);
});
在循环外声明一个变量,并在退出循环前设置,然后返回该变量的值:
$('form').submit(function(){
var result = true;
$(this).find('input').each(function(){
if($(this).hasClass('error'))
result = false;
return false; // exit loop
});
return result;
});
$('form').submit(function(){
var allok = true;
$(this).find('input').each(function(){
if($(this).hasClass('error'))
allok =false;
});
return allok;
});
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 全局变量和全局对象的属性之间有什么区别吗
- java.net和javascript之间正则表达式的差异
- JavaScript中的函数和对象之间没有区别吗?
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- Jquery在函数之间传递表行
- 根据某些条件在视图之间切换
- 在控制器和数据对象之间同步数据
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- d3中堆栈函数和嵌套函数之间的差异
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- JQuery:在页面之间滑动
- 如何使用JavaScript查找1和N之间的所有数字的总和
- 操作放置在画布上的元素之间的连接
- 在下划线中使用_(obj).map(callback)和_.map(obj,callback)之间的区别
- 按“|”拆分"而不是方括号之间
- 用于删除两个“”之间的字符的正则表达式是什么/"在javascript中
- 得到"未捕获错误:断言失败:Ember视图需要1.7和2.1之间的jQuery“;通过ember-cli创建的