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插件编写的更多相关文章

  1. 设计师和开发人员更快完成工作需求的20个惊人的jqury插件教程(上)

    [转] 设计师和开发人员更快完成工作需求的20个惊人的jqury插件教程(上) jquery的功能总是那么的强大,用他可以开发任何web和移动框架,在浏览器市场,他一直是占有重要的份额,今天,就给大家 ...

  2. jQuery插件编写步骤详解

    如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jquery 及ui 内置web项目里了.至于使用jquery好处这里就不再赘述了,用过的都知道.今天我们来讨论下jq ...

  3. jquery插件编写【转载】

    如今做web开发,jquery 几乎是必不可少的,就连vs神器在2010版本开始将Jquery 及ui 内置web项目里了.至于使用jquery好处这里就不再赘述了,用过的都知道.今天我们来讨论下jq ...

  4. jQuery插件编写及链式编程模型小结

    JQuery极大的提高了我们编写JavaScript的效率,让我们可以愉快的编写代码,做出各种特效.大多数情况下,我们都是使用别人开发的JQuery插件,今天我们就来看看如何把我们常用的功能做出JQu ...

  5. Wireshark插件编写

    Wireshark插件编写 在抓包的过程中学习了使用wireshark,同时发现wireshark可以进行加载插件,便在网上学习了一下相应的插件开发技术. 需求编写一个私有协议名为SYC,使用UDP端 ...

  6. typecho插件编写教程1 - 从HelloWorld说起

    typecho插件编写教程1 - 从HelloWorld说起 老高 187 5月25日 发布 推荐 0 推荐 收藏 2 收藏,189 浏览 最近老高正在编写一个关于typecho的插件,由于typec ...

  7. jQuery插件编写及链式编程模型

    jQuery插件编写及链式编程模型小结 JQuery极大的提高了我们编写JavaScript的效率,让我们可以愉快的编写代码,做出各种特效.大多数情况下,我们都是使用别人开发的JQuery插件,今天我 ...

  8. vue插件编写与实战

    关于 微信公众号:前端呼啦圈(Love-FED) 我的博客:劳卜的博客 知乎专栏:前端呼啦圈 前言 热爱vue开发的同学肯定知道awesome-vue 这个github地址,里面包含了数以千计的vue ...

  9. chart.js angular组件封装(ng6)、实战配置、插件编写

    前言 项目需要使用chart.js插件,由于项目是使用angular开发,那么我第一步就是先把chart.js改造成angular组件来使用. 本项目代码都可以在github上下载:项目git地址 a ...

随机推荐

  1. 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 ...

  2. Unity技术面试题

    一:什么是协同程序?答:在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行.换句话说,开启协程就是开启一个可以与程序并行的逻辑.可以用来控制运动.序列以及对象的行为. 二:Unity3d中的碰 ...

  3. android 水纹上涨与水滴滴下效果

    这两天项目比较紧,本来打算完成以后再写博客的,今天终于实现了一个炫的功能,怀着激动的心情,趁热打铁,把项目经验记录一下,效果图如下:  对功能的几点说明: 1.圆形边框旋转 2.水纹上涨 3.水滴滴下 ...

  4. springboot2.X整合mybatis

    github地址:https://github.com/BenchChen/springboot 1) 创建springboot-maven项目,并修改pom文件 <?xml version=& ...

  5. Confman - 针对「Node 应用」的配置文件加载模块

    一句话介绍 confman 是一个强大的配置文件加载器,无论你喜欢 yaml .cson.json.properties.plist.ini.toml.xml 还是 js,都能满足你的愿望,并且更加简 ...

  6. calibre,完成对各种格式的电子书籍的管理和格式转换及同步

    Calibre是免费的电子书制作.阅读软件,源代码开放,拥有跨平台的设计,支持多个基于不同系统的便携式移动设备,包括苹果iPhone.Amazon电子书等设备.它是一个完整的电子图书馆,包括图书馆管理 ...

  7. Spring定时器XML配置

    spring-task.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&qu ...

  8. Zeppelin原理简介

    Zeppelin是一个基于Web的notebook,提供交互数据分析和可视化.后台支持接入多种数据处理引擎,如spark,hive等.支持多种语言: Scala(Apache Spark).Pytho ...

  9. Spark学习散点总结

    使用Spark 时,通常会有两种模式.一.在交互式编程环境(REPL, a.k.a spark-shell)下实现一些代码,测试一些功能点.二.像MapReduce 那样提前编写好源代码并编译打包(仅 ...

  10. 转: SVN使用教程总结(图文丰富,相当详细)

    转自:http://www.cnblogs.com/armyfai/p/3985660.html SVN使用教程总结   SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生 ...