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 相关文章推荐
ext读取两种结构的xml的代码
Nov 05 Javascript
JavaScript按位运算符的应用简析
Feb 04 Javascript
JavaScript中switch语句的用法详解
Jun 03 Javascript
javascript数组克隆简单实现方法
Dec 16 Javascript
js实现C#的StringBuilder效果完整实例
Dec 22 Javascript
基于javascript实现动态时钟效果
Aug 18 Javascript
详解vue+vueRouter+webpack的简单实例
Jun 17 Javascript
微信小程序基于本地缓存实现点赞功能的方法
Dec 18 Javascript
vue2.0 实现导航守卫的具体用法(路由守卫)
May 17 Javascript
vue mounted组件的使用
Jun 18 Javascript
JS实现的小火箭发射动画效果示例
Dec 08 Javascript
用npm-run实现自动化任务的方法示例
Jan 14 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
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
jQuery源码分析-01总体架构分析
2011/11/14 Javascript
面向对象的Javascript之二(接口实现介绍)
2012/01/27 Javascript
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
jquery实现滑动特效代码
2015/08/10 Javascript
js淡入淡出焦点图幻灯片效果代码分享
2015/09/08 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
深入了解JavaScript的逻辑运算符(与、或)
2016/12/20 Javascript
jquery实现下拉框左右选择功能
2017/02/21 Javascript
Angular 2.x学习教程之结构指令详解
2017/05/25 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
vue-cli构建vue项目的步骤详解
2019/01/27 Javascript
学习node.js 断言的使用详解
2019/03/18 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
[02:50]【扭转乾坤,只此一招】DOTA2永雾林渊版本开启新篇章
2020/12/22 DOTA
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
Python解惑之True和False详解
2017/04/24 Python
Python正则表达式经典入门教程
2017/05/22 Python
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
python正则实现计算器功能
2017/12/14 Python
python 重命名轴索引的方法
2018/11/10 Python
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
Python csv文件的读写操作实例详解
2019/11/19 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
html5构建触屏网站之touch事件介绍
2013/01/07 HTML / CSS
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
民事诉讼代理授权委托书范本
2014/10/08 职场文书
办理护照工作证明
2014/10/10 职场文书
经营场所使用证明
2015/06/19 职场文书
2015国庆66周年宣传语
2015/07/14 职场文书
Java中API的使用方法详情
2022/04/06 Java/Android