jqury插件编写
sae中短信验证码:
; (function($) {
	$(document).ready(function() {
		if (parent && parent.location.href != location.href) parent.location.href = location.href;
		var timelineBox = $('.timeline-box') timelineBox.find('.progress .bar').each(function(k, v) {
			$(v).css('width', '25%')
		}) var retryBtn = $('#get-vcode');
		var codeBox = $('#verify');
		retryBtn.addClass('disabled').fadeIn().on('click',
		function(e) {
			e.preventDefault();
		});
		var pageTimer = function(limit, interval) {
			retryBtn.attr('data-ready', 'loading').addClass('disabled').off('click').on('click',
			function(e) {
				e.preventDefault();
			});
			setTimeout(function() {
				if (limit > interval) {
					limit -= interval;
					retryBtn.text('重新获取验证码(' + parseInt(limit / 1000) + 's)');
					setTimeout(arguments.callee, interval);
				} else {
					retryBtn.attr('data-ready', 'ready').text('重新获取验证码').removeClass('disabled').off('click').on('click', retryBtnFunc);
				}
			},
			interval);
		}
		pageTimer(60000, 1000);
		var retryBtnFunc = function(e) {
			e.preventDefault();
			if (retryBtn.attr('data-ready') == 'ready') {
				$.ajax({
					url: '/?m=user&a=send_mobile_code',
					type: 'POST',
					dataType: 'JSON',
					success: function(resp, state, xhr) {
						var success = xhr.getResponseHeader('reg_ok');
						if (success) {
							location.href = '/?m=user&a=finish_register';
						} else if (xhr.getResponseHeader('sae_ok') || resp.event > 299) {
							retryBtn.popover('destroy');
							retryBtn.popover({
								title: '系统提示',
								content: resp.message
							}).popover('show');
							codeBox[0].select();
							pageTimer(60000, 1000);
						}
					}
				}) pageTimer(60000, 1000);
			}
		}
		$('#verify-mobile').on('click',
		function(e) {
			e.preventDefault();
			var ret = $SAETOOLS.trim(codeBox.val());
			if (ret.length) {
				$.ajax({
					url: '/?m=user&a=check_mobile_code',
					data: 'vcode=' + ret,
					type: 'POST',
					dataType: 'JSON',
					success: function(data, state, xhr) {
						var success = xhr.getResponseHeader('reg_ok');
						if (success) {
							location.href = '/?m=user&a=finish_register';
						} else if (xhr.getResponseHeader('sae_ok') || data.event > 299) {
							if (422 == data.event) {
								retryBtn.popover('destroy');
								$('#verify').popover('destroy').popover({
									title: '系统提示',
									content: data.message
								}).popover('show');
								$('#get-vcode').remove();
							} else if (data.event <= 299 && data.event >= 200) {
								location.href = '/?m=user&a=finish_register';
							} else {
								retryBtn.popover({
									title: '系统提示',
									content: data.message
								}).popover('show');
								codeBox[0].select();
								pageTimer(60000, 1000);
							}
						}
					}
				})
			} else {
				codeBox.popover('destroy');
				codeBox.popover({
					title: '系统提示',
					content: '请输入验证码,如果没有收到验证码,可以尝试发送短信到服务器进行手动验证。'
				}).popover('show');
				codeBox[0].select();
			}
		});
		$('#step-second').on('click',
		function(e) {
			e.preventDefault();
			location.href = '/?m=user&a=security2';
		})
	})
})(jQuery)
jqury插件编写的更多相关文章
- 设计师和开发人员更快完成工作需求的20个惊人的jqury插件教程(上)
		[转] 设计师和开发人员更快完成工作需求的20个惊人的jqury插件教程(上) jquery的功能总是那么的强大,用他可以开发任何web和移动框架,在浏览器市场,他一直是占有重要的份额,今天,就给大家 ... 
- jQuery插件编写步骤详解
		如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jquery 及ui 内置web项目里了.至于使用jquery好处这里就不再赘述了,用过的都知道.今天我们来讨论下jq ... 
- jquery插件编写【转载】
		如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jquery 及ui 内置web项目里了.至于使用jquery好处这里就不再赘述了,用过的都知道.今天我们来讨论下jq ... 
- jQuery插件编写及链式编程模型小结
		JQuery极大的提高了我们编写JavaScript的效率,让我们可以愉快的编写代码,做出各种特效.大多数情况下,我们都是使用别人开发的JQuery插件,今天我们就来看看如何把我们常用的功能做出JQu ... 
- Wireshark插件编写
		Wireshark插件编写 在抓包的过程中学习了使用wireshark,同时发现wireshark可以进行加载插件,便在网上学习了一下相应的插件开发技术. 需求编写一个私有协议名为SYC,使用UDP端 ... 
- typecho插件编写教程1 - 从HelloWorld说起
		typecho插件编写教程1 - 从HelloWorld说起 老高 187 5月25日 发布 推荐 0 推荐 收藏 2 收藏,189 浏览 最近老高正在编写一个关于typecho的插件,由于typec ... 
- jQuery插件编写及链式编程模型
		jQuery插件编写及链式编程模型小结 JQuery极大的提高了我们编写JavaScript的效率,让我们可以愉快的编写代码,做出各种特效.大多数情况下,我们都是使用别人开发的JQuery插件,今天我 ... 
- vue插件编写与实战
		关于 微信公众号:前端呼啦圈(Love-FED) 我的博客:劳卜的博客 知乎专栏:前端呼啦圈 前言 热爱vue开发的同学肯定知道awesome-vue 这个github地址,里面包含了数以千计的vue ... 
- chart.js angular组件封装(ng6)、实战配置、插件编写
		前言 项目需要使用chart.js插件,由于项目是使用angular开发,那么我第一步就是先把chart.js改造成angular组件来使用. 本项目代码都可以在github上下载:项目git地址 a ... 
随机推荐
- How to create a Maven web app and deploy to Tomcat - fast
			原文地址: http://www.blogjava.net/sealyu/archive/2010/01/08/308706.html Procedure Prerequisites and Assu ... 
- Unity技术面试题
			一:什么是协同程序?答:在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行.换句话说,开启协程就是开启一个可以与程序并行的逻辑.可以用来控制运动.序列以及对象的行为. 二:Unity3d中的碰 ... 
- android 水纹上涨与水滴滴下效果
			这两天项目比较紧,本来打算完成以后再写博客的,今天终于实现了一个炫的功能,怀着激动的心情,趁热打铁,把项目经验记录一下,效果图如下: 对功能的几点说明: 1.圆形边框旋转 2.水纹上涨 3.水滴滴下 ... 
- springboot2.X整合mybatis
			github地址:https://github.com/BenchChen/springboot 1) 创建springboot-maven项目,并修改pom文件 <?xml version=& ... 
- Confman - 针对「Node 应用」的配置文件加载模块
			一句话介绍 confman 是一个强大的配置文件加载器,无论你喜欢 yaml .cson.json.properties.plist.ini.toml.xml 还是 js,都能满足你的愿望,并且更加简 ... 
- calibre,完成对各种格式的电子书籍的管理和格式转换及同步
			Calibre是免费的电子书制作.阅读软件,源代码开放,拥有跨平台的设计,支持多个基于不同系统的便携式移动设备,包括苹果iPhone.Amazon电子书等设备.它是一个完整的电子图书馆,包括图书馆管理 ... 
- Spring定时器XML配置
			spring-task.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&qu ... 
- Zeppelin原理简介
			Zeppelin是一个基于Web的notebook,提供交互数据分析和可视化.后台支持接入多种数据处理引擎,如spark,hive等.支持多种语言: Scala(Apache Spark).Pytho ... 
- Spark学习散点总结
			使用Spark 时,通常会有两种模式.一.在交互式编程环境(REPL, a.k.a spark-shell)下实现一些代码,测试一些功能点.二.像MapReduce 那样提前编写好源代码并编译打包(仅 ... 
- 转: SVN使用教程总结(图文丰富,相当详细)
			转自:http://www.cnblogs.com/armyfai/p/3985660.html SVN使用教程总结 SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生 ... 
