溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在微信小程序中實(shí)現(xiàn)一個(gè)驗(yàn)證碼倒計(jì)時(shí)功能

發(fā)布時(shí)間:2021-03-11 16:31:24 來源:億速云 閱讀:203 作者:Leah 欄目:web開發(fā)

怎么在微信小程序中實(shí)現(xiàn)一個(gè)驗(yàn)證碼倒計(jì)時(shí)功能?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

首先js文件的data里面 聲明一個(gè)變量用于表示當(dāng)前是否可以點(diǎn)擊,codeIsCanClick = true,  默認(rèn)是可以點(diǎn)擊的

  寫下界面代碼:

  wxml文件中

<view class='centerRow'>
 <view class='inputLabel'>動(dòng)態(tài)碼:</view>
 <input class='inputStyle'  bindinput="bindKeyInput" placeholder="短信動(dòng)態(tài)碼" adjust-position='false'  confirm-type='search'></input>
 <button class="emailCode" hidden='{{!codeIsCanClick}}' size="mini" bindtap='clickCode'>獲取動(dòng)態(tài)碼</button>
 <button class="emailCodeSend" hidden='{{codeIsCanClick}}' size="mini">{{last_time}}秒后重新發(fā)送</button>
</view>

   對(duì)應(yīng)樣式 wxss文件:

.centerRow{
 display: flex;
 flex-direction: row;
 align-items: center;
 height: 44px;
 padding-left: 16px;
 padding-right: 16px;
 border-bottom: 1rpx solid #D9D9D9;
 border-top: 1rpx solid #D9D9D9;
}
.inputStyle{
 border-radius:4px;
 color:#D9D9D9;
 outline:0;
 padding-left: 4px;
 margin-left: 4px;
 margin-right: 20rpx;
 font-size: 14px;
}
.inputLabel{
 font-size: 16px;
 color: #33496D;
 width: 90px;
}
.emailCode{
 width: 118px;
 height: 28px;
 align-items: center;
 justify-content: center;
 display: flex;
 flex-direction: row;
 color:white;
 font-size: 14px;
 background-color: #50A2EC;
 border-radius: 14px;
}
.emailCodeSend{
 width: 118px;
 height: 28px;
 align-items: center;
 justify-content: center;
 display: flex;
 flex-direction: row;
 color:white;
 font-size: 14px;
 background-color: #B9DAF7;
 border-radius: 14px;
}

  以上構(gòu)成頁面靜態(tài)效果。

  注意button有兩個(gè),分別對(duì)應(yīng)的未點(diǎn)擊和點(diǎn)擊下的按鈕樣子,用js中的CodeIsCanClick控制顯示隱藏

  然后在js中寫邏輯代碼:

// 倒計(jì)時(shí)事件 單位s
var countdown = 10;
var settime = function (that) {
 if (countdown == 0) {
 that.setData({
  codeIsCanClick: true
 })
 countdown = 10;
 return;
 } else {
 that.setData({
  codeIsCanClick: false,
  last_time: countdown
 })
 countdown--;
 }
 setTimeout(function () {
 settime(that)
 }, 1000
 )
}
Page({
 /**
 * 頁面的初始數(shù)據(jù)
 */
 data: {
 codeIsCanClick: true
 },
 /**
 * 點(diǎn)擊驗(yàn)證碼按鈕
 */
 clickCode: function () {
 var that = this;
 settime(that)
 },

關(guān)于怎么在微信小程序中實(shí)現(xiàn)一個(gè)驗(yàn)證碼倒計(jì)時(shí)功能問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI