验证码输入框

实现效果:

输入数字自动跳到下一个input。

 

实现代码:

wxml代码:

<form>
    <view class=\'ipt_box\'>
      <input 
      type=\'number\' wx:for="{{inputLen}}" wx:key="{{index}}" 
      disabled bindtap=\'onFocus\'
      value="{{iptValue.length>=index+1?iptValue[index]:\'\'}}"
      />
    </view>
  <input 
  name="password" password="{{true}}" 
  class=\'hidden_ipt\' maxlength="{{inputLen}}" 
  focus="{{isFocus}}" bindinput="setValue"
  ></input>
</form>

 wxss代码:

form{
  display: flex;
  justify-content: space-around;
  width:100%;
}
form input{
  height: 94rpx;
  width:94rpx;
  border:1px solid #cdcdcd;
  border-radius: 8rpx;
  display: inline-block;
  line-height: 94px;
  text-align: center;
  font-size: 48rpx;
  color:#323232;
  margin:0 8rpx;
}
form .hidden_ipt{
  height: 0rpx;
  width:0rpx;
  border:none;
  margin:0;
}

.scan_code{
  width:400rpx;
  height: 98rpx;
  display: block;
  margin:0 auto;
  line-height: 98rpx;
  font-size: 32rpx;
  color:#fff;
  background: #6f5bde;
  text-align: center;
  border-radius: 50rpx;
  margin-top:60rpx;
}

js代码:

Page({
  /**
   * 页面的初始数据
   */
  data: {
    inputLen:6,
    iptValue:"",
    isFocus:false,
  },

  onFocus:function(e){
    var that = this;
    that.setData({isFocus:true});
  },
  setValue:function(e){
    console.log(e.detail.value);
    var that = this;
    that.setData({ iptValue: e.detail.value });
  }

})

思路:

1.页面+样式准备

  设置验证码输入框样式,设置disabled 使其不可输入。

  另外设置一个输入框隐藏其样式,使其不可见。

  设置隐藏输入框的最大长度。

2.点击验证码输入框,使隐藏输入框为聚焦状态

3.使用bindinput事件 监听输入状态 获取value。

4.将value赋值到验证码输入框中