jquery 的 each 方法中 return 的坑
jquery 的 each 方法中 return 的坑
Chapter 0
在项目中使用 jquery 的 each 方法时想在 each 的循环中返回一个布尔类型的值于是掉进一个坑中...
Chapter 1
最初的代码:
这里的代码,虽然return 了,但是并未实际 return 值作为方法的返回值,而且还是继续往后执行。 在网上查询之后发现在 jquery 的each方法中如果return true相当于是continue,而return false相当于是break。
$(":checkbox[name='insurace-category']:checked").each(function (index, ele) {
var _item = $(".gift_option_item_" + $(ele).val());
if (_item && _item.length > 0) {
var _premium = $.trim($(_item).find(".custom_inputbox").eq(0).val());
var _selectElement = $(_item).find("select");
if (_selectElement && _selectElement.length > 0) {
var _amount = $.trim($(_selectElement).val());
if (!_amount) {
layer.msg("请选择保额!", function () {
$(_selectElement).focus();
});
return false;
}
}
if (!_premium) {
layer.msg("请输入保费!", function() {
$(_item).find(".custom_inputbox").eq(0).focus();
});
return false;
}
}
});
Chapter 2
我的解决方案如下:
修改后的代码:
var _isInvalid = false;
$(":checkbox[name='insurace-category']:checked").each(function (index, ele) {
var _item = $(".gift_option_item_" + $(ele).val());
if (_item && _item.length > 0) {
var _premium = $.trim($(_item).find(".custom_inputbox").eq(0).val());
var _selectElement = $(_item).find("select");
if (_selectElement && _selectElement.length > 0) {
var _amount = $.trim($(_selectElement).val());
if (!_amount) {
layer.msg("请选择保额!");
$(_selectElement).focus();
_isInvalid = true;
return false;
}
}
if (!_premium) {
layer.msg("请输入保费!");
$(_item).find(".custom_inputbox").eq(0).focus();
_isInvalid = true;
return false;
}
}
});
if (_isInvalid) {
return false;
}
我这里借助了一个变量来辅助判断,当不满足条件时设置为true,在循环外判断这个变量的值,如果变量的值是true则证明又不合法的值,如果变量的值为false,则证明所需要判断的值都符合要求
Summary
jquery each 方法中的 return 实际上是不会 return 啊,在 jquery each 方法中 return false,可以借助一个外部变量来辅助实现我们想要的功能。
jquery 的 each 方法中 return 的坑的更多相关文章
- 在jquery的ajax方法中的success中使用return要注意的问题
jquery的ajax方法:在success中使用return:来结束程序的时候,结束的只是success这个方法,也就是说success中的return的作用范围只是success: 如果要想在su ...
- 用jquery的ajax方法获取return返回值的正确姿势
如果jquery中,想要获取ajax的return返回值,必须注意两方面,ajax的同步异步问题,在ajax方法里面还是外面进行return返回值. 下面列举了三种写法,如果想成功获取到返回值,参考第 ...
- 关于ajax中return并不能作为方法的返回值
接下来关于ajax中的return值最后没有办法是方法的最终返回值问题 login(username,password) { console.log("进入方法"); $.ajax ...
- jquery.on()超级方法
$.on()方法是jquery1.7之后的一个超级方法,将事件绑定和事件委托整合到一个函数中去,支持绑定多个事件,并且可以绑定自定义事件.使用起来很方便. demo传送门 事件委托 首先说一下事件委托 ...
- jQuery – AJAX load() 方法
jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法. load() 方法从服务器加载数据,并把返回的数据放入被选元素中. 语法: $(selector). ...
- JS事件处理函数中return false到底是什么东西
在<JS DOM编程艺术>一书中,用return false来阻止事件默认行为,可是js高程3里没有这种用法,那这到底是什么呢. 先看一下知乎的一个解释 就此问题,首先要纠正两个观点: 1 ...
- jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法
jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法 在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们 ...
- Jquery源码中的Javascript基础知识(四)— jQuery.fn.init方法
$() 即调用了jQuery.fn.init方法 jQuery = function( selector, context ) { return new jQuery.fn.init( selecto ...
- 使用反射机制实现jQuery调用ashx类中的指定方法
使用反射机制实现jQuery调用ashx类中的指定方法 近期用asp.net做个小网站,但又不喜欢使用asp.net的服务器端控件,经过一番思量后确定前端采用原始的html.后台采用Linq to ...
随机推荐
- Docker进阶使用1
容器间共享文件 Docker 的容器和外部环境是相对隔离的,并且容器是一次性的,运行结束后并不会有任何的持久化的文件或者数据.所以当我们需要做应用数据的持久化,或者保留应用的日志文件时,我们需要用到 ...
- Certificates does not conform to algorithm constraints
今天在开发时遇到一个新问题:Certificates does not conform to algorithm constraints,在此记录一下解决方案. 问题详情: [ERROR] Faile ...
- React Native编译器的配置以及基础知识
入职新公司,这边打算采用RN来写界面,所以学习一波这一块的知识. 采用的是WebStorm来编译,据同事说,比他采用atom编译要多很多语法提示. 下载地址:https://www.jetbrains ...
- 防止DDoS攻击的方式
针对企业的DDoS攻击持续增长,根据Akamai的调查报告,2015年DDoS攻击增长了史无前例的180% !面对 DDoS 攻击性挑战,我们应该建立有效的防御体系来抵御攻击. 1.网站IP减少公 ...
- 2016 "Bird Cup" ICPC7th@ahstu--“波导杯”安徽科技学院第七届程序设计大赛
"波导杯"安徽科技学院第七届程序设计大赛 Contest - 2016 "Bird Cup" ICPC7th@ahstu Start time: 2016-0 ...
- Python爬虫从入门到放弃(二十三)之 Scrapy的中间件Downloader Middleware实现User-Agent随机切换
总架构理解Middleware 通过scrapy官网最新的架构图来理解: 这个图较之前的图顺序更加清晰,从图中我们可以看出,在spiders和ENGINE提及ENGINE和DOWNLOADER之间都可 ...
- php 下载文件
<?php header("Content-type:text/html;charset=utf-8"); // $file_name="cookie.jpg&qu ...
- css以及选择器基础
CSS样式基础了解1.css基础语法CSS样式的出现是为了将内容和表现分离极大的提高了工作效率内联样式(在 HTML 元素内部)<p style="margin-left: 10px: ...
- 链接样式L-O-H-A
伪类可以链接起来使用,即不用在乎顺序 :link{color:blue;} :visited{color:purple;} :link:hover{color:red;} :visited:hover ...
- 王佩丰第2讲-excel单元格格式设置 笔记
点小箭头都可以进入单元格格式设置 跨越合并 添加斜线 回车 ALT+ENTER 格式刷 数字格式 特定红色 货币VS会计专用 日期 2是1月2号,3是1月3号-- 自定义[例子中是在数值后面加&quo ...