微信小程序的注冊頁面包含倒計(jì)時(shí)驗(yàn)證碼、獲取用戶信息
1、頁面展示
2、wxml代碼
<!--pages/register/register.wxml--> <scroll-view> <image src='/images/register.png' mode='widthFix' class="topImage"></image> <view class='input-top'> <input id="telphone" maxlength='11' type="text" placeholder="請(qǐng)輸入手機(jī)號(hào)" bindinput="inputPhoneNum"/> <text wx:if="{{!send}}" bindtap='sendMsg' class="sendMsg">獲取驗(yàn)證碼</text> <text wx:if="{{send}}" class="sendMsg" bindtap="sendMsg">{{second+"s"}}</text> </view> <view class="input-buttom"> <input id="captcha" type="number" maxlength="4" placeholder="請(qǐng)輸入4位驗(yàn)證碼" bindinput="inputCode"/> </view> <button class="btn" open-type="getUserInfo" bindgetuserinfo="onGotUserInfo" lang="zh_CN">立即用傘</button> <view class='protocol'> <text class="protocol-left">點(diǎn)擊立即用傘即表示同意</text> <text class="protocol-right">《共享雨傘租賃服務(wù)協(xié)議》</text> </view> </scroll-view>
3、wxss代碼
page{ background: #f0eff4; } .topImage { width: 100%; height: auto; } .input-top, .input-buttom { font-size: 30rpx; padding-left: 30rpx; margin: 0rpx 20rpx; background-color: white; height: 70rpx; } .input-top { flex-direction: row; display: flex; justify-content: space-between; margin-bottom: 1px; margin-top: 20rpx; } #telphone, #captcha { height: 70rpx; } .sendMsg { line-height: 70rpx; margin-right: 30rpx; color: #f9b400; } .btn { margin: 0rpx 20rpx; background-color: #f9b400; color: white; margin-top: 20rpx; font-size: 30rpx; opacity:0.8 } /* 下方協(xié)議開始 */ .protocol{ text-align: center; } .protocol-left { color: #333; font-size: 25rpx; } .protocol-right { font-size: 23rpx; color: #f9b400; } /* 下方協(xié)議結(jié)束 */
4、js代碼
Page({ //頁面的初始數(shù)據(jù) data: { send: false, //是否已經(jīng)發(fā)送驗(yàn)證碼 second: 120, //驗(yàn)證碼有效時(shí)間 phoneNum: '', //用戶輸入的電話號(hào)碼 code: '', //用戶輸入的驗(yàn)證碼 }, //當(dāng)輸入手機(jī)號(hào)碼后,把數(shù)據(jù)存到data中 inputPhoneNum: function(e) { let phoneNum = e.detail.value; this.setData({ phoneNum: phoneNum, }) }, //前臺(tái)校驗(yàn)手機(jī)號(hào) checkPhoneNum: function(phoneNum) { let str = /^(1[3|5|8]{1}\d{9})$/; if (str.test(phoneNum)) { return true; } else { //提示手機(jī)號(hào)碼格式不正確 wx.showToast({ title: '手機(jī)號(hào)格式不正確', image: '/images/warn.png', }) return false; } }, //調(diào)用發(fā)送驗(yàn)證碼接口 sendMsg: function() { var phoneNum = this.data.phoneNum; if (this.checkPhoneNum(phoneNum)) { wx.request({ url: '寫自己的后臺(tái)請(qǐng)求發(fā)送驗(yàn)證碼訪問URL', method: 'POST', data: { telphone: phoneNum, }, header: { "Content-Type": "application/x-www-form-urlencoded" }, success: (res) => { if (獲取驗(yàn)證碼成功) { //開始倒計(jì)時(shí) this.setData({ send: true, }) this.timer(); } else { //提示獲取驗(yàn)證碼失敗 wx.showToast({ title: '獲取驗(yàn)證碼失敗', image: '/images/warn.png', }) } }, }) } }, //一個(gè)計(jì)時(shí)器 timer: function() { let promise = new Promise((resolve, reject) => { let setTimer = setInterval( () => { this.setData({ second: this.data.second - 1 }) if (this.data.second <= 0) { this.setData({ second: 60, send: false, }) resolve(setTimer) } }, 1000) }) promise.then((setTimer) => { clearInterval(setTimer) }) }, //當(dāng)輸完驗(yàn)證碼,把數(shù)據(jù)存到data中 inputCode: function(e) { this.setData({ code: e.detail.value }) }, //點(diǎn)擊立即用傘按鈕后,獲取微信用戶信息存到后臺(tái) //(問題缺陷:用戶更改個(gè)人信息后,后臺(tái)拿到的還是舊數(shù)據(jù),不過用戶信息最重要的還是openid和用戶填寫的手機(jī)號(hào),其他都不重要) onGotUserInfo: function(e) { // TODO 對(duì)數(shù)據(jù)包進(jìn)行簽名校驗(yàn) //前臺(tái)校驗(yàn)數(shù)據(jù) if (this.data.phoneNum === '' || this.data.code===''){ wx.showToast({ title: "請(qǐng)?zhí)顚懯謾C(jī)號(hào)碼和驗(yàn)證碼", image: '/images/warn.png', }) } //獲取用戶數(shù)據(jù),(備注:我在用戶一進(jìn)入小程序就已經(jīng)自動(dòng)把openId獲取到,然后放到緩存里) var userInfo = { nickName: e.detail.userInfo.nickName, avatarUrl: e.detail.userInfo.avatarUrl, gender: e.detail.userInfo.gender, phoneNum: this.data.phoneNum, openId: wx.getStorageSync('openid') } //獲取驗(yàn)證碼 var code = this.data.code; //用戶信息存到后臺(tái) wx.request({ url: '寫自己的后臺(tái)請(qǐng)求注冊URL', method: 'POST', data: { telphone: userInfo.phoneNum, code: code, nickName: userInfo.nickName, gender: userInfo.gender, openId: userInfo.openId, }, header: { "Content-Type": "application/x-www-form-urlencoded" }, success: (res) => { if (如果用戶注冊成功) { console.log("【用戶注冊成功】"); wx.setStorage({ key: "registered", data: true }); wx.redirectTo({ url: '../user/user?orderState=0' }); } else { console.error("【用戶注冊失敗】:" + res.data.resultMsg); wx.showToast({ title: res.data.resultMsg, image: '/images/warn.png', }) } } }) }, })
總結(jié)
以上所述是小編給大家介紹的微信小程序的注冊頁面包含倒計(jì)時(shí)驗(yàn)證碼、獲取用戶信息,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
- 微信小程序?qū)崿F(xiàn)短信驗(yàn)證碼倒計(jì)時(shí)
- 微信小程序?qū)崿F(xiàn)驗(yàn)證碼倒計(jì)時(shí)效果
- 微信小程序?qū)崿F(xiàn)驗(yàn)證碼倒計(jì)時(shí)
- 微信小程序?qū)崿F(xiàn)手機(jī)獲取驗(yàn)證碼倒計(jì)時(shí)60s
- 微信小程序?qū)崿F(xiàn)發(fā)送短信驗(yàn)證碼倒計(jì)時(shí)
- 微信小程序項(xiàng)目實(shí)踐之驗(yàn)證碼倒計(jì)時(shí)功能
- 微信小程序?qū)崿F(xiàn)驗(yàn)證碼獲取倒計(jì)時(shí)效果
- 微信小程序?qū)崿F(xiàn)倒計(jì)時(shí)60s獲取驗(yàn)證碼
- 小程序?qū)崿F(xiàn)簡單驗(yàn)證碼倒計(jì)時(shí)
相關(guān)文章
JavaScript中十種一步拷貝數(shù)組的方法實(shí)例詳解
JavaScript中我們經(jīng)常會(huì)遇到拷貝數(shù)組的場景,但是都有哪些方式能夠來實(shí)現(xiàn)呢,我們不妨來梳理一下,感興趣的朋友跟隨小編一起看看吧2019-04-04javascript發(fā)表評(píng)論或者留言時(shí)的展開效果
javascript發(fā)表評(píng)論或者留言時(shí)的展開效果...2007-07-07three.js響應(yīng)式設(shè)計(jì)實(shí)例詳解
響應(yīng)式網(wǎng)站設(shè)計(jì)(Responsive?Web?design)是一種網(wǎng)絡(luò)頁面設(shè)計(jì)布局,是目前比較流行的一種網(wǎng)頁設(shè)計(jì),下面這篇文章主要給大家介紹了關(guān)于three.js響應(yīng)式設(shè)計(jì)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04js return返回多個(gè)值,通過對(duì)象的屬性訪問方法
下面小編就為大家?guī)硪黄猨s return返回多個(gè)值,通過對(duì)象的屬性訪問方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02javascript對(duì)象的相關(guān)操作小結(jié)
下面小編就為大家?guī)硪黄猨avascript對(duì)象的相關(guān)操作小結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05基于JavaScript實(shí)現(xiàn)智能右鍵菜單
這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)智能右鍵菜單的相關(guān)資料,需要的朋友可以參考下2016-03-03js 中{},[]中括號(hào),大括號(hào)使用詳解
{ } 大括號(hào),表示定義一個(gè)對(duì)象,大部分情況下要有成對(duì)的屬性和值,或是函數(shù)2011-05-05js中通過getElementsByName訪問name集合對(duì)象的方法
下面小編就為大家?guī)硪黄猨s中通過getElementsByName訪問name集合對(duì)象的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10