JS/jQ实现免费获取手机验证码倒计时效果


Posted in Javascript onJune 13, 2016

最近做了一个项目,其中有项目需求涉及到手机号验证码,就是当用户点击获取验证码之后我们会发送一条信息到用户手机,然后就会出现一个倒计时按钮,很像支付宝手机付款效果了,下面我给大家分享两个实现代码。

JS/jQ实现免费获取手机验证码倒计时效果

如何获取手机验证码?

小月不知道大家是利用什么平台去获取验证码的,但是告诉大家我是在哪个平台获取的。

LeanCloud :https://leancloud.cn/

文档:https://leancloud.cn/docs/sms_guide-js.html

在这个平台首先去要注册一个账号,在设置里面设置自己的信息按照文档去操作就可以了这里不多说了,大部分是后台去操作些接口的,我们前端有能力的可以自己去尝试用php去写接口。(懒惰的我是不会写。)

一般是两个接口:

1.发送验证请求(这样你的手机会受到短信验证哦)

2.返回数据验证手机号和验证是否一致

根据后台攻城狮的接口去实现吧。

前端页面的工作

下面这段代码就是上图所示的页面

<div class="pop">
<div class="con">
<span class="close"><img src="img/close.png"></span>
<div class="page1">
<p class="info">
<span class="title">手机号:</span>
<input type="tel" class="tel" id="mobile" onkeyup="value=value.replace(/[^\w\.\/]/ig,'')" required="" placeholder="请输入您的手机号">
</p>
<p class="info">
<span class="title">验证码:</span>
<input type="tel" class="code" placeholder="输入验证码">
<span class="code1">获取验证码</span>
</p>
<div class="demand demand2" style="width: 70%; margin-top: 20px;">提交</div>
</div>
<div class="page2">
<p class="p1">提交成功</p>
<p class="p2">我们将在索要成功后</p>
<p class="p2">第一时间通知您!</p>
<div class="demand demand3" style="width: 80%; margin-top: 20px; margin-bottom: 10px;">朕知道了</div>
</div>
</div>
</div>

校验手机号是否正确

//校验手机号
//页面的input写的正则下面直接调用方法就可以的
jQuery.extend({
checkmobileNo: function(str) {
var re =/^1[3|7|5|8]\d{9}$/;
if (re.test(str)) {
return true;
} else {
return false;
}
}
});

JS/JQ部分处理发送短信验证请求

//发送验证码给手机 
$.ajax({
type: 'GET',
url:"你们后台提供的接口" + mobile, //即上面的接口1
success: function(data, status) {
if (data.errcode==0) {
alert("已发送");
$(".code1").attr("disabled", "disabled");
$(".code1").css("background-color", "#b4b2b3");
//下面就是实现倒计时的效果代码
var d = new Date();
d.setSeconds(d.getSeconds() + 59);
var m = d.getMonth() + 1;
var time = d.getFullYear() + '-' + m + '-' + d.getDate() + ' ' + d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds();
var id = ".code1";
var end_time = new Date(Date.parse(time.replace(/-/g, "/"))).getTime(),
//月份是实际月份-1
sys_second = (end_time - new Date().getTime()) / 1000;
var timer = setInterval(function() {
if (sys_second > 1) {
sys_second -= 1;
var day = Math.floor((sys_second / 3600) / 24);
var hour = Math.floor((sys_second / 3600) % 24);
var minute = Math.floor((sys_second / 60) % 60);
var second = Math.floor(sys_second % 60);
var time_text = '';
if (day > 0) {
time_text += day + '天';
}
if (hour > 0) {
if (hour < 10) {
hour = '0' + hour;
}
time_text += hour + '小时';
}
if (minute > 0) {
if (minute < 10) {
minute = '0' + minute;
}
time_text += minute + '分';
}
if (second > 0) {
if (second < 10) {
second = '0' + second;
}
time_text += second + '秒';
}
$(id).text(time_text);
} else {
clearInterval(timer);
$(".code1").attr("disabled", false);
$(".code1").text('获取验证码');
$(".code1").css("background-color", "#f67a62");
}
},
1000); 
}else{
alert("发送失败,请再试一次。");
}
},
error: function(data, status) {
alert(status);
}
});
});

向服务器提交信息

//验证验证码和手机发送的验证码是否一致
$.ajax({
type: 'GET',
url: "接口2",
success: function(data, status) {
if (data.errcode==0) {
//向服务器提交信息
$.ajax({
type: 'POST',
url: "向服务器提交你们索要填写的信息接口",
data: JSON.stringify({ //data这里看你们的需求根据接口的数据去写
"project_id": pid,
"phone": mobile,
"device":d
}),
success: function(data, status) {
if (data.errcode==0) {
$('.page1').hide();
$('.page2').show();
}else{
alert("提交失败,请在尝试一次!");
}
},
error: function(data, status) {
alert(data.errMsg);
}
});
}else{
alert("验证码不正确!");
}
},
error: function(data, status) {
alert(status);
}
});
});

以上所述是小编给大家介绍的JS/jQ实现免费获取手机验证码倒计时效果的全部叙述,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript实现的动态文字变换
Jul 28 Javascript
javascript之通用简单的table选项卡实现(二)
May 09 Javascript
从数据结构分析看:用for each...in 比 for...in 要快些
Apr 17 Javascript
jquery获取当前元素索引值用法实例
Jun 10 Javascript
详解JavaScript ES6中的Generator
Jul 28 Javascript
javascript实现列表切换效果
May 02 Javascript
微信小程序本作用域下调用全局JS详解及实例
Feb 22 Javascript
纯jQuery实现前端分页功能
Mar 23 jQuery
详解node.js平台下Express的session与cookie模块包的配置
Apr 26 Javascript
vue实现仿淘宝结账页面实例代码
Nov 08 Javascript
在微信小程序里使用watch和computed的方法
Aug 02 Javascript
layui table设置某一行的字体颜色方法
Sep 05 Javascript
BootStrap智能表单实战系列(三)分块表单配置详解
Jun 13 #Javascript
BootStrap 智能表单实战系列(二)BootStrap支持的类型简介
Jun 13 #Javascript
BootStrap智能表单demo示例详解
Jun 13 #Javascript
Bootstrap布局之栅格系统详解
Jun 13 #Javascript
Bootstrap页面布局基础知识全面解析
Jun 13 #Javascript
jquery制做精致的倒计时特效
Jun 13 #Javascript
VUEJS实战之利用laypage插件实现分页(3)
Jun 13 #Javascript
You might like
php批量上传的实现代码
2013/06/09 PHP
探讨Hessian在PHP中的使用分析
2013/06/13 PHP
PHP使用SOAP调用.net的WebService数据
2013/11/12 PHP
php对二维数组进行排序的简单实例
2013/12/19 PHP
js小技巧--自动隐藏红叉叉
2007/08/13 Javascript
YUI 读码日记之 YAHOO.util.Dom - Part.1
2008/03/22 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
2013/05/07 Javascript
常见的原始JS选择器使用方法总结
2014/04/09 Javascript
jQuery中Form相关知识汇总
2015/01/06 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
Node.js中防止错误导致的进程阻塞的方法
2016/08/11 Javascript
JS只能输入正整数的简单实例
2016/10/07 Javascript
js实现tab切换效果
2017/02/16 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
2017/02/17 Javascript
angular中实现控制器之间传递参数的方式
2017/04/24 Javascript
详解Angular4中路由Router类的跳转navigate
2017/06/09 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
2017/07/31 Javascript
详解一次Vue低版本安卓白屏问题的解决过程
2019/05/30 Javascript
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
Python深入学习之装饰器
2014/08/31 Python
Python ValueError: invalid literal for int() with base 10 实用解决方法
2015/06/21 Python
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
Python实现身份证号码解析
2015/09/01 Python
浅述python中argsort()函数的实例用法
2017/03/30 Python
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
Python批量发送post请求的实现代码
2018/05/05 Python
Python实例方法、类方法、静态方法的区别与作用详解
2019/03/25 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
Django权限设置及验证方式
2020/05/13 Python
预备党员表决心书
2014/03/11 职场文书
财务工作检讨书
2014/10/29 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
大班下学期幼儿评语
2014/12/30 职场文书
2015年收银工作总结范文
2015/04/01 职场文书
医院员工辞职信范文
2015/05/12 职场文书
建议书的格式及范文
2015/09/14 职场文书