微信小程序---实现输入手机验证码功能

*** html部分

<view class='container'>

  <view class='main-title' bindtap="test">

    输入短信验证码

  </view>

  <view class="sub-title">

    已向<text class="phone">139****9999</text>发送验证码

  </view>

  <view class="code-box" bindtap="getFocus">

    <view class="{{code.length==0?'active':'input-box'}}">{{code[0]}}</view>

    <view class="{{code.length==1?'active':'input-box'}}">{{code[1]}}</view>

    <view class="{{code.length==2?'active':'input-box'}}">{{code[2]}}</view>

    <view class="{{code.length==3?'active':'input-box'}}">{{code[3]}}</view>

    <view class="{{code.length==4?'active':'input-box'}}">{{code[4]}}</view>

    <view class="{{code.length==5?'active':'input-box'}}">{{code[5]}}</view>

  </view>

  <input bindinput="getCode"  class="input-number" type="number" focus="{{isFocus}}" maxlength="6" />

  <view class="time-box">

    <view class="regain" hover-class="btn-hover" wx:if="{{isRegain}}" bindtap="regain">重新获取验证码</view>

    <view class="regain-info" wx:else>

      <text class="time">{{time}}</text>后可重新获取短信

    </view>

  </view>

 *** css部分

page{

  width: 100%;

  height: 100%;

  overflow: hidden;

}

.container{

  padding-top: 260rpx;

  width: 100%;

  height: 100%;

  background-color: #fafafa;

}

.container .main-title{

  font-size: 40rpx;

  color: #333;

  text-align: center;

  font-weight: bold;

  margin-bottom: 20rpx;

}

.container .sub-title{

  font-size: 30rpx;

  color: #666;

  text-align: center;  

}

.container .sub-title .phone{

  font-size: 30rpx;

  color: #333;

  font-weight: bold;

}

.container .code-box{

  width: 510rpx;

  height: 80rpx;

  margin-left: auto;

  margin-right: auto;

  display: flex;

  justify-content: space-between;

  margin-top: 80rpx;

}

.container .code-box .input-box{

  height: 80rpx;

  width: 72rpx;

  box-sizing: border-box;

  border: solid 1rpx #d7d7d7;

  text-align: center;

  line-height: 80rpx;

  color: #333;

  font-size: 34rpx;

}

.container .code-box .active{

  height: 80rpx;

  width: 72rpx;

  box-sizing: border-box;

  border: solid 1rpx #d7d7d7;

  text-align: center;

  line-height: 80rpx;

  color: #333;

  font-size: 34rpx;

  border-color: #3399cc;

.container .input-number{

  opacity: 0;

  position: absolute;

  z-index: -1;

  height: 0rpx;

  width: 0rpx;

}

.container .time-box{

  margin-top: 150rpx;

  text-align: center;

  font-size: 30rpx;

}

.container .time-box .regain{

  color: #3399cc;  

}

.container .time-box .regain-info{

  color: #b5b5b5;

}

*** js部分

data: {

    isFocus:true,

    code: "",

    isRegain:false,

    timer:null,

    time:20,

  },

   /* 生命周期函数--监听页面加载 */

  onLoad: function (options) {

    this.countdown();

  },

  regain(){

    this.setData({

      isRegain: false,

    });  

    this.countdown();  

  },

  getFocus(){

    this.setData({

      isFocus: true,

    });

  },

  getCode(e){

    console.log(e)

    this.setData({

      code: e.detail.value

    });

  },

  countdown(){

    var currentTime = this.data.time

    let timer=setInterval(()=>{

      currentTime--;

      this.setData({

        time: currentTime

      })

      if (currentTime <= 0) {

        clearInterval(timer)

        this.setData({

          time: 20,

          isRegain:true,

        })

      }      

    },1000)

  },

})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值