最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序的注冊頁面包含倒計時驗證碼、獲取用戶信息

 更新時間:2019年05月22日 09:01:07   作者:華噠妹妹  
本文通過實例代碼給大家介紹了微信小程序的注冊頁面包含倒計時驗證碼、獲取用戶信息的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

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="請輸入手機號" bindinput="inputPhoneNum"/>
  <text wx:if="{{!send}}" bindtap='sendMsg' class="sendMsg">獲取驗證碼</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="請輸入4位驗證碼" bindinput="inputCode"/>
 </view>
 <button class="btn" open-type="getUserInfo" bindgetuserinfo="onGotUserInfo" lang="zh_CN">立即用傘</button>
 <view class='protocol'>
 <text class="protocol-left">點擊立即用傘即表示同意</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ā)送驗證碼
 second: 120, //驗證碼有效時間
 phoneNum: '', //用戶輸入的電話號碼
 code: '', //用戶輸入的驗證碼
 },
 //當(dāng)輸入手機號碼后,把數(shù)據(jù)存到data中
 inputPhoneNum: function(e) {
 let phoneNum = e.detail.value;
 this.setData({
  phoneNum: phoneNum,
 })
 },
 //前臺校驗手機號
 checkPhoneNum: function(phoneNum) {
 let str = /^(1[3|5|8]{1}\d{9})$/;
 if (str.test(phoneNum)) {
  return true;
 } else {
  //提示手機號碼格式不正確
  wx.showToast({
  title: '手機號格式不正確',
  image: '/images/warn.png',
  })
  return false;
 }
 },
 //調(diào)用發(fā)送驗證碼接口
 sendMsg: function() {
 var phoneNum = this.data.phoneNum;
 if (this.checkPhoneNum(phoneNum)) {
  wx.request({
  url: '寫自己的后臺請求發(fā)送驗證碼訪問URL',
  method: 'POST',
  data: {
   telphone: phoneNum,
  },
  header: {
   "Content-Type": "application/x-www-form-urlencoded"
  },
  success: (res) => {
   if (獲取驗證碼成功) {
   //開始倒計時
   this.setData({
    send: true,
   })
   this.timer();
   } else {
   //提示獲取驗證碼失敗
   wx.showToast({
    title: '獲取驗證碼失敗',
    image: '/images/warn.png',
   })
   }
  },
  })
 }
 },
 //一個計時器
 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)輸完驗證碼,把數(shù)據(jù)存到data中
 inputCode: function(e) {
 this.setData({
  code: e.detail.value
 })
 },
 //點擊立即用傘按鈕后,獲取微信用戶信息存到后臺
 //(問題缺陷:用戶更改個人信息后,后臺拿到的還是舊數(shù)據(jù),不過用戶信息最重要的還是openid和用戶填寫的手機號,其他都不重要)
 onGotUserInfo: function(e) {
 // TODO 對數(shù)據(jù)包進(jìn)行簽名校驗
 //前臺校驗數(shù)據(jù)
 if (this.data.phoneNum === '' || this.data.code===''){
  wx.showToast({
  title: "請?zhí)顚懯謾C號碼和驗證碼",
  image: '/images/warn.png',
  })
 }
 //獲取用戶數(shù)據(jù),(備注:我在用戶一進(jìn)入小程序就已經(jī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') 
 }
 //獲取驗證碼
 var code = this.data.code;
 //用戶信息存到后臺
 wx.request({
  url: '寫自己的后臺請求注冊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é)

以上所述是小編給大家介紹的微信小程序的注冊頁面包含倒計時驗證碼、獲取用戶信息,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • 符合W3C Web標(biāo)準(zhǔn)的圖片連續(xù)無間隙水平滾動

    符合W3C Web標(biāo)準(zhǔn)的圖片連續(xù)無間隙水平滾動

    很久以前就有這個問題,總是找不到通用的,或比較簡單的“圖片連續(xù)無間隙向左滾動,無間隙向右滾動,符合W3C Web標(biāo)準(zhǔn)”
    2008-06-06
  • JavaScript中判斷某個字符串、數(shù)組等是否包含某個值的五種方法

    JavaScript中判斷某個字符串、數(shù)組等是否包含某個值的五種方法

    在JavaScript中有多種方法可以用來判斷字符串、數(shù)組是否包含某個值,這篇文章主要給大家介紹了關(guān)于JavaScript中判斷某個字符串、數(shù)組等是否包含某個值的五種方法,需要的朋友可以參考下
    2024-03-03
  • TypeScript函數(shù)和類型斷言實例詳解

    TypeScript函數(shù)和類型斷言實例詳解

    在某些情況下,我們會比TS更清楚一個數(shù)據(jù)的類型,這種時候我們就可以使用斷言來告訴TS相信我,我知道自己在干什么,下面這篇文章主要給大家介紹了關(guān)于TypeScript函數(shù)和類型斷言的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • 如何在JavaScript中使用localStorage詳情

    如何在JavaScript中使用localStorage詳情

    這篇文章主要介紹了如何在JavaScript中使用localStorage,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • 微信小程序日期選擇器使用詳解

    微信小程序日期選擇器使用詳解

    這篇文章主要為大家詳細(xì)介紹了微信小程序日期選擇器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 用JS實現(xiàn)圖片輪播效果代碼(一)

    用JS實現(xiàn)圖片輪播效果代碼(一)

    這篇文章主要介紹了用JS實現(xiàn)圖片輪播效果代碼(一)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • bootstrap 通過加減按鈕實現(xiàn)輸入框組功能

    bootstrap 通過加減按鈕實現(xiàn)輸入框組功能

    這篇文章主要介紹了bootstrap 輸入框組 通過加減按鈕來增加刪除內(nèi)嵌輸入框組,當(dāng)我點擊 + 按鈕時,會添加一行輸入框組;當(dāng)點擊 - 按鈕時,會刪除這一行輸入框組。具體實現(xiàn)代碼大家參考下本文
    2017-11-11
  • JS字符串累加Array不一定比字符串累加快(根據(jù)電腦配置)

    JS字符串累加Array不一定比字符串累加快(根據(jù)電腦配置)

    言歸正傳:性能差異較大的機器運行結(jié)果會RT 出現(xiàn)大的差異,為了保險起見。還是推薦使用Array 來進(jìn)行字符串拼接操作
    2012-05-05
  • js有趣的非空判斷函數(shù) + ?? 實現(xiàn)

    js有趣的非空判斷函數(shù) + ?? 實現(xiàn)

    本文介紹了JS中空值合并操作符??的用法,包括如何使用它來判斷數(shù)據(jù)是否為“合法數(shù)據(jù)”,即非空字符串、非undefined和非null,下面就一起來了解一下,感興趣的可以了解一下
    2024-09-09
  • 微信小程序?qū)崿F(xiàn)YDUI的ScrollNav組件

    微信小程序?qū)崿F(xiàn)YDUI的ScrollNav組件

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)YDUI的ScrollNav組件,滾動導(dǎo)航效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02

最新評論

娱乐| 汕尾市| 黔西县| 丹巴县| 澎湖县| 绥芬河市| 酒泉市| 和静县| 眉山市| 揭西县| 白河县| 高州市| 万宁市| 静安区| 丽江市| 临颍县| 元氏县| 大冶市| 黑山县| 苍梧县| 武穴市| 长阳| 丹巴县| 饶阳县| 合川市| 五台县| 株洲县| 达日县| 大宁县| 邹城市| 丹凤县| 巴马| 桦甸市| 武陟县| 兴仁县| 大名县| 汝阳县| 巴东县| 贡觉县| 景谷| 肇州县|