我很納悶,為什么我按下鍵盤數字的那一瞬間會跑到第二格,后面倒是有按排序往后輸入。為什么會這樣呢?第一格就是輸入不了,輸入第一個input的時候,它會在第二格里面輸入
<a-input type="password" v-for="(item,index) in pwdList"
:key="index"
ref="inputRef"
:class="index===5 ? 'border-right' : ''"
maxlength="1"
@keydown="ceshi($event,index)"
v-model="item.val"/>
pwdList: [{val: ""}, {val: ""}, {val: ""}, {val: ""}, {val: ""}, {val: ""}],方法:
ceshi (el, index) {
window.console.log(el, index)
let rgx = /^[0-9]*$/g
if (rgx.test(el.key)) {
this.$nextTick(() => {
this.$refs.inputRef[index + 1].focus()
})
} else {
// alert('請輸入數字!!!')
this.$nextTick(() => {
window.console.log(this.$refs.inputRef[index])
})
}
}
uj5u.com熱心網友回復:
邏輯上的問題,一共6個格,應該先加入資料,再進行方法中的if判斷然后往下走uj5u.com熱心網友回復:
@keydown="ceshi($event,index)"改成:
@keyup="ceshi($event,index)"
原因很簡單keydown是按下鍵盤,此時并還沒有輸入內容,結果你就移動了焦點。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/83048.html
標籤:JavaScript
上一篇:Js事件系結問題
