微信小程序驗證碼/密碼輸入框,一個框一個數字


wxml:

<form bindsubmit="formSubmit">  
  
  <view class='content'>  
  
    <block wx:for="{{Length}}" wx:key="item">  
      <input class='iptbox' value="{{Value.length>=index+1?Value[index]:''}}" disabled password='{{ispassword}}' catchtap='Tap'></input>  
    </block>  
  
  </view>  
  
  <input name="password" password="{{true}}" class='ipt' maxlength="{{Length}}" focus="{{isFocus}}" bindinput="Focus"></input>  
  
  <view>  
    <button class="btn-area" formType="submit">Submit</button>  
  </view>  
  
</form>  


js:

Page({  
  
  /** 
   * 頁面的初始數據 
   */  
  data: {  
    Length:6,        //輸入框個數  
    isFocus:true,    //聚焦  
    Value:"",        //輸入的內容  
    ispassword:true, //是否密文顯示 true為密文, false為明文。  
  },  
  Focus(e){  
    var that = this;  
    console.log(e.detail.value);  
    var inputValue = e.detail.value;  
    that.setData({  
      Value:inputValue,  
    })  
  },  
  Tap(){  
    var that = this;  
    that.setData({  
      isFocus:true,  
    })  
  },  
  formSubmit(e){  
    console.log(e.detail.value.password);  
  },  
})  

 

wxss:

content{  
  display: flex;  
  justify-content: space-around;  
  align-items: center;  
  margin-top: 200rpx;  
}  
.iptbox{  
  width: 80rpx;  
  height: 80rpx;  
  border:1rpx solid #ddd;  
  border-radius: 20rpx;  
  display: flex;  
  justify-content: center;  
  align-items: center;  
  text-align: center;  
}  
.ipt{  
  width: 0;  
  height: 0;  
}  
.btn-area{  
  width: 80%;  
  background-color: orange;  
  color:white;  
}  

思路:
1、放置一個輸入框,隱藏其文字和位置,同時設置支付輸入框(表格)樣式
2、當點擊輸入框時設置輸入框為聚焦狀態,喚起鍵盤,點擊空白處,失去焦點,設為失去焦點樣式,因為輸入框寬高為0,所以不會顯示輸入框和光標,實現隱藏。
3、限制輸入框最大字數並且監聽輸入框狀態,以輸入框值的長度作為輸入框(表格)內容的渲染條件
4、點擊提交按鈕時,獲取輸入框內容。

轉自:https://blog.csdn.net/weixin_41871290/article/details/80512600


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM