JS/jQ實(shí)現(xiàn)免費(fèi)獲取手機(jī)驗(yàn)證碼倒計(jì)時(shí)效果
最近做了一個(gè)項(xiàng)目,其中有項(xiàng)目需求涉及到手機(jī)號(hào)驗(yàn)證碼,就是當(dāng)用戶點(diǎn)擊獲取驗(yàn)證碼之后我們會(huì)發(fā)送一條信息到用戶手機(jī),然后就會(huì)出現(xiàn)一個(gè)倒計(jì)時(shí)按鈕,很像支付寶手機(jī)付款效果了,下面我給大家分享兩個(gè)實(shí)現(xiàn)代碼。

如何獲取手機(jī)驗(yàn)證碼?
小月不知道大家是利用什么平臺(tái)去獲取驗(yàn)證碼的,但是告訴大家我是在哪個(gè)平臺(tái)獲取的。
LeanCloud :https://leancloud.cn/
文檔:https://leancloud.cn/docs/sms_guide-js.html
在這個(gè)平臺(tái)首先去要注冊(cè)一個(gè)賬號(hào),在設(shè)置里面設(shè)置自己的信息按照文檔去操作就可以了這里不多說了,大部分是后臺(tái)去操作些接口的,我們前端有能力的可以自己去嘗試用php去寫接口。(懶惰的我是不會(huì)寫。)
一般是兩個(gè)接口:
1.發(fā)送驗(yàn)證請(qǐng)求(這樣你的手機(jī)會(huì)受到短信驗(yàn)證哦)
2.返回?cái)?shù)據(jù)驗(yàn)證手機(jī)號(hào)和驗(yàn)證是否一致
根據(jù)后臺(tái)攻城獅的接口去實(shí)現(xiàn)吧。
前端頁面的工作
下面這段代碼就是上圖所示的頁面
<div class="pop"> <div class="con"> <span class="close"><img src="img/close.png"></span> <div class="page1"> <p class="info"> <span class="title">手機(jī)號(hào):</span> <input type="tel" class="tel" id="mobile" onkeyup="value=value.replace(/[^\w\.\/]/ig,'')" required="" placeholder="請(qǐng)輸入您的手機(jī)號(hào)"> </p> <p class="info"> <span class="title">驗(yàn)證碼:</span> <input type="tel" class="code" placeholder="輸入驗(yàn)證碼"> <span class="code1">獲取驗(yàn)證碼</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">第一時(shí)間通知您!</p> <div class="demand demand3" style="width: 80%; margin-top: 20px; margin-bottom: 10px;">朕知道了</div> </div> </div> </div>
校驗(yàn)手機(jī)號(hào)是否正確
//校驗(yàn)手機(jī)號(hào)
//頁面的input寫的正則下面直接調(diào)用方法就可以的
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部分處理發(fā)送短信驗(yàn)證請(qǐng)求
//發(fā)送驗(yàn)證碼給手機(jī)
$.ajax({
type: 'GET',
url:"你們后臺(tái)提供的接口" + mobile, //即上面的接口1
success: function(data, status) {
if (data.errcode==0) {
alert("已發(fā)送");
$(".code1").attr("disabled", "disabled");
$(".code1").css("background-color", "#b4b2b3");
//下面就是實(shí)現(xiàn)倒計(jì)時(shí)的效果代碼
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(),
//月份是實(shí)際月份-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 + '小時(shí)';
}
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('獲取驗(yàn)證碼');
$(".code1").css("background-color", "#f67a62");
}
},
1000);
}else{
alert("發(fā)送失敗,請(qǐng)?jiān)僭囈淮巍?);
}
},
error: function(data, status) {
alert(status);
}
});
});
向服務(wù)器提交信息
//驗(yàn)證驗(yàn)證碼和手機(jī)發(fā)送的驗(yàn)證碼是否一致
$.ajax({
type: 'GET',
url: "接口2",
success: function(data, status) {
if (data.errcode==0) {
//向服務(wù)器提交信息
$.ajax({
type: 'POST',
url: "向服務(wù)器提交你們索要填寫的信息接口",
data: JSON.stringify({ //data這里看你們的需求根據(jù)接口的數(shù)據(jù)去寫
"project_id": pid,
"phone": mobile,
"device":d
}),
success: function(data, status) {
if (data.errcode==0) {
$('.page1').hide();
$('.page2').show();
}else{
alert("提交失敗,請(qǐng)?jiān)趪L試一次!");
}
},
error: function(data, status) {
alert(data.errMsg);
}
});
}else{
alert("驗(yàn)證碼不正確!");
}
},
error: function(data, status) {
alert(status);
}
});
});
以上所述是小編給大家介紹的JS/jQ實(shí)現(xiàn)免費(fèi)獲取手機(jī)驗(yàn)證碼倒計(jì)時(shí)效果的全部敘述,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- JS 實(shí)現(xiàn)獲取驗(yàn)證碼 倒計(jì)時(shí)功能
- JS+HTML5實(shí)現(xiàn)獲取手機(jī)驗(yàn)證碼倒計(jì)時(shí)按鈕
- Angular.js實(shí)現(xiàn)獲取驗(yàn)證碼倒計(jì)時(shí)60秒按鈕的簡單方法
- JS獲取短信驗(yàn)證碼倒計(jì)時(shí)的實(shí)現(xiàn)代碼
- ionic+AngularJs實(shí)現(xiàn)獲取驗(yàn)證碼倒計(jì)時(shí)按鈕
- js實(shí)現(xiàn)簡單的獲取驗(yàn)證碼按鈕效果
- JavaScript獲取短信驗(yàn)證碼(周期性)
- JS實(shí)現(xiàn)用戶注冊(cè)時(shí)獲取短信驗(yàn)證碼和倒計(jì)時(shí)功能
- js實(shí)現(xiàn)點(diǎn)擊獲取驗(yàn)證碼倒計(jì)時(shí)效果
- JavaScript實(shí)現(xiàn)10秒后再次獲取驗(yàn)證碼
相關(guān)文章
Open and Print a Word Document
Open and Print a Word Document...2007-06-06
webpack幾種手動(dòng)實(shí)現(xiàn)HMR的方式
眾所周知,在webpack中使用模塊熱替換(HMR),能夠使得應(yīng)用在運(yùn)行時(shí),本文就介紹一下如何實(shí)現(xiàn)HMR,感興趣的可以了解一下2021-07-07
javascript面向?qū)ο笾蚕沓蓡T屬性與方法及prototype關(guān)鍵字用法
這篇文章主要介紹了javascript面向?qū)ο笾蚕沓蓡T屬性與方法及prototype關(guān)鍵字用法,實(shí)例分析了prototype關(guān)鍵字在共享成員屬性與方法中的原理與使用技巧,需要的朋友可以參考下2015-01-01
javascript代碼優(yōu)化的8點(diǎn)總結(jié)
本篇文章給大家分享了關(guān)于javascript代碼優(yōu)化的8點(diǎn)總結(jié),希望我們整理的內(nèi)容能夠幫助到大家。2018-01-01
基于BootStrap Metronic開發(fā)框架經(jīng)驗(yàn)小結(jié)【八】框架功能總體界面介紹
這篇文章主要介紹了基于BootStrap Metronic開發(fā)框架經(jīng)驗(yàn)小結(jié)【八】框架功能總體界面介紹 的相關(guān)資料,需要的朋友可以參考下2016-05-05
詳解Javacript和AngularJS中的Promises
這篇文章主要介紹了詳解Javacript和AngularJS中的Promises的相關(guān)資料,promise是Javascript異步編程很好的解決方案。,需要的朋友可以參考下2016-02-02

