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 相关文章推荐
不错的新闻标题颜色效果
Dec 10 Javascript
js数组方法扩展实现数组统计函数
Apr 09 Javascript
jQuery1.9.1针对checkbox的调整方法(prop)
May 01 Javascript
node.js中的buffer.write方法使用说明
Dec 10 Javascript
JavaScript中实现单体模式分享
Jan 29 Javascript
为何JS操作的href都是javascript:void(0);呢
Nov 12 Javascript
浅谈Javascript中的Label语句
Dec 14 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
Apr 28 Javascript
在vue项目中使用Nprogress.js进度条的方法
Jan 31 Javascript
vue实现多级菜单效果
Oct 19 Javascript
JS实现随机抽选获奖者
Nov 07 Javascript
微信小程序实现点击导航标签滚动定位到对应位置
Nov 19 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设计模式 Facade(外观模式)
2011/06/26 PHP
PHP+memcache实现消息队列案例分享
2014/05/21 PHP
使用PHP json_decode可能遇到的坑与解决方法
2017/08/03 PHP
php 处理png图片白色背景色改为透明色的实例代码
2018/12/10 PHP
js jquery验证银行卡号信息正则学习
2013/01/21 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
JavaScript中的prototype原型学习指南
2016/05/09 Javascript
第一篇初识bootstrap
2016/06/21 Javascript
AngularJS变量及过滤器Filter用法分析
2016/11/22 Javascript
解析NodeJS异步I/O的实现
2017/04/13 NodeJs
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
小程序实现带年月选取效果的日历
2018/06/27 Javascript
Vue列表渲染的示例代码
2018/11/01 Javascript
JavaScript 监听组合按键思路及代码实现
2020/07/28 Javascript
在Python中使用模块的教程
2015/04/27 Python
整理Python 常用string函数(收藏)
2016/05/30 Python
Python的Django中将文件上传至七牛云存储的代码分享
2016/06/03 Python
Python中在for循环中嵌套使用if和else语句的技巧
2016/06/20 Python
python daemon守护进程实现
2016/08/27 Python
python 实现tar文件压缩解压的实例详解
2017/08/20 Python
Python3中条件控制、循环与函数的简易教程
2017/11/21 Python
python3 发送任意文件邮件的实例
2018/01/23 Python
浅谈Python Opencv中gamma变换的使用详解
2018/04/02 Python
python 函数中的内置函数及用法详解
2019/07/02 Python
python类中super() 的使用解析
2019/12/19 Python
python和php哪个更适合写爬虫
2020/06/22 Python
利用Python实现Json序列化库的方法步骤
2020/09/09 Python
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
年终总结会主持词
2014/03/25 职场文书
和睦家庭事迹
2014/05/14 职场文书
资助贫困学生倡议书
2014/05/16 职场文书
安全演讲稿开场白
2014/08/25 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
小学生优秀作文范文(六篇)
2019/07/10 职场文书
python中Matplotlib绘制直线的实例代码
2021/07/04 Python
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js