亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue.js實現移動端短信驗證碼功能

發布時間:2020-09-07 09:06:57 來源:腳本之家 閱讀:436 作者:毛毛-lucy 欄目:web開發

現在的短信驗證碼一般為4位或6位,則頁面中會相應的顯示4個或6個文本框,如圖所示

Vue.js實現移動端短信驗證碼功能

當點擊注冊進入到輸入驗證碼頁面的時候,第一個框自動獲取光標,依次輸入,不可直接輸入第三個或第四個框的值,

input輸入框是循環出來的,代碼如下:

<div class="sms_input">
  <div v-for="n in sms.numbers-1"><input v-if="sms.show[n-1]" disabled="true" v-model="sms.msg[n-1]"></div>
  <div><input v-if="sms.show[sms.numbers-1]" v-model="sms.msg[sms.numbers-1]" pattern="[0-9]*" type="number" ref="sms_input" @keyup="sms_input($event)" oninput="if(value.length>1)value=value.slice(0,1)"></div>
  <div v-for="n in sms.numbers-1"><input v-if="sms.show[n+sms.numbers-1]" disabled="true"></div>
 </div>

第一第三行不解釋,相信聰明的你可以看懂, 讓我們一起看第二行,keyup是當鍵盤按下的時候執行的函數,ref則為傳值,

data () {
  return {
   ……
   sms: {
    numbers: 4,
    msg: [],
    show: [],
    position: 0
   },
  ……
  }
 }
_setSmsInputDisplay () {
   var arr = []
   for (var i = 0; i < this.sms.numbers * 2 - 1; i++) {
    arr.push(i >= this.sms.numbers - 1 - this.sms.position && i < this.sms.numbers - 1 - this.sms.position + this.sms.numbers ? 1 : 0)
   }
   this.sms.show = arr
  },
  _resetSms () {
   this.sms.msg = []
   for (var i = 0; i < this.sms.numbers; i++) {
    this.sms.msg.push(null)
   }
   this.sms.position = 0
   this._setSmsInputDisplay()
   this.$nextTick(function () {
    this.$refs.sms_input.focus()
   })
  }
  submit () {
   this.$api.post('signin', {
    mobile: this.mobile,
    captcha: this.captcha
   }, r => {
    this.$router.push('/main')
    console.log(r)
   })
  },
  sms_input (e) {
   if (e.keyCode === 8) { // 刪除
    if (this.sms.position > 0) {
     this.sms.position--
     this.sms.msg.splice(-2, 1)
     this.sms.msg.unshift(null)
     this._setSmsInputDisplay()
    }
   } else if (e.keyCode >= 48 && e.keyCode <= 57) { // 僅可以輸入數字
    if (this.sms.position < this.sms.numbers - 1) {
     this.sms.position++
     this.sms.msg.splice(-1, 1, String.fromCharCode(e.keyCode))
     this.sms.msg.shift()
     this.sms.msg.push(null)
     this._setSmsInputDisplay()
    } else {
     document.activeElement.blur() // hide keyboard for iOS
     console.log(this.sms.msg.join(''))
     this.submit()
    }
   } else {
    this.$refs.sms_input.value = '' // remove NaN
   }
  }

如此,便可實現驗證碼輸入功能,代碼清晰,聰明的你若有疑問,隨時留言,我看到后定會秒回。

以上所述是小編給大家介紹的Vue.js實現移動端短信驗證碼功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南澳县| 普陀区| 九台市| 高尔夫| 常宁市| 称多县| 嘉义市| 木里| 天柱县| 九龙坡区| 江西省| 澳门| 大新县| 邹平县| 南靖县| 普洱| 龙泉市| 右玉县| 福泉市| 冀州市| 安化县| 迭部县| 吉林省| 南安市| 新蔡县| 周至县| 比如县| 舒兰市| 富阳市| 井冈山市| 龙山县| 册亨县| 牟定县| 崇州市| 子洲县| 江门市| 分宜县| 杭锦后旗| 中超| 青海省| 金堂县|