国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 17:00:11
字體:
來源:轉載
供稿:網友

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

驗證碼頁面示例圖

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

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實現移動端短信驗證碼功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄂州市| 漳平市| 涞水县| 蒙城县| 凤冈县| 高阳县| 茌平县| 丰宁| 泊头市| 大港区| 读书| 二手房| 邹城市| 锡林郭勒盟| 正蓝旗| 南江县| 孟村| 古田县| 桦川县| 长岛县| 攀枝花市| 常熟市| 枝江市| 阿合奇县| 常宁市| 杂多县| 东阿县| 商南县| 西平县| 志丹县| 佛冈县| 德格县| 墨玉县| 五峰| 全南县| 安西县| 丰原市| 铜川市| 修文县| 贡嘎县| 江北区|