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

 更新时间:2016年06月13日 14:07:02   作者:绝代风华  
这篇文章主要介绍了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,&#39;&#39;)" 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实现免费获取手机验证码倒计时效果的全部叙述,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • xmlplus组件设计系列之按钮(2)

    xmlplus组件设计系列之按钮(2)

    xmlplus 是一个JavaScript框架,用于快速开发前后端项目。这篇文章主要介绍了xmlplus组件设计系列之按钮,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • 微信小程序页面缩放式侧滑效果的实现代码

    微信小程序页面缩放式侧滑效果的实现代码

    这篇文章主要介绍了微信小程序页面缩放式侧滑效果的实现代码,实现原理就是通过点击按钮,往需要动画的div中添加或移除拥有动画效果的class。具体实例代码大家跟随小编一起通过本文学习吧
    2018-11-11
  • JS实现简单的下雪特效示例详解

    JS实现简单的下雪特效示例详解

    很多南方的小伙伴可能没怎么见过或者从来没见过下雪,这篇文章小编给大家带来一个小Demo,模拟了下雪场景。感兴趣的小伙伴快来跟随小编一起学习一下吧
    2021-12-12
  • JS Generator函数yield表达式示例详解

    JS Generator函数yield表达式示例详解

    这篇文章主要为大家介绍了JS Generator函数yield表达式示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • jquery将标签元素的高设为屏幕的百分比

    jquery将标签元素的高设为屏幕的百分比

    这篇文章主要介绍了js将标签元素的高设为屏幕的百分比,需要的朋友可以参考下
    2017-04-04
  • JavaScript设计模型Iterator实例解析

    JavaScript设计模型Iterator实例解析

    这篇文章主要介绍了JavaScript设计模型Iterator实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • JavaScript面向对象实现贪吃蛇游戏

    JavaScript面向对象实现贪吃蛇游戏

    这篇文章主要为大家详细介绍了JavaScript面向对象实现贪吃蛇游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • javascript实现简单的ajax封装示例

    javascript实现简单的ajax封装示例

    这篇文章主要介绍了javascript实现简单的ajax封装功能,结合实例形式分析了ajax基本功能与操作实现技巧,需要的朋友可以参考下
    2016-12-12
  • js发送短信倒计时的简单实现方法

    js发送短信倒计时的简单实现方法

    下面小编就为大家带来一篇js发送短信倒计时的简单实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • 解决EventSource 删除单词的前置空格问题记录

    解决EventSource 删除单词的前置空格问题记录

    EventSource是HTML5中的一种新的API,用来实现服务器端向客户端推送事件,相比于常规的轮询方式,EventSource可以实现更加高效、低延迟的数据传输,这篇文章主要介绍了解决EventSource 删除单词的前置空格问题记录,需要的朋友可以参考下
    2024-03-03

最新评论