91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

vue輸入框怎么實現輸完后光標自動跳到下一個輸入框中

發布時間:2023-03-07 11:12:37 來源:億速云 閱讀:172 作者:iii 欄目:開發技術

本篇內容主要講解“vue輸入框怎么實現輸完后光標自動跳到下一個輸入框中”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“vue輸入框怎么實現輸完后光標自動跳到下一個輸入框中”吧!

實現思路

首先我們需要通過 keyup() 事件在用戶輸入完字符后,利用 document.getElementsByClassName 方法獲取到輸入框的 dom 元素集合,拿到當前元素的 keyindex 值,通過判斷確定光標是否跳到下一個輸入框(focus)還是光標失焦(blur);keydown() 事件主要就是為了防止一旦輸入過快,一個輸入框中會有多個字符的問題。 本章用到的屬性以及方法如下:

focus()

focus() 當元素獲得焦點時(當通過鼠標點擊選中元素或通過 tab 鍵定位到元素時),發生 focus 事件。focus() 方法觸發 focus 事件,或規定當發生 focus 事件時運行的函數。

blur()

當元素失去焦點時發生 blur 事件。blur() 方法觸發 blur 事件,或規定當發生 blur 事件時運行的函數。

keyup()

keyup() 方法觸發 keyup 事件,或規定當發生 keyup 事件時運行的函數。

keydown()

當鍵盤鍵被按下時觸發 keydown 事件。需要注意的是 keydown() 是在鍵盤按下觸發,而 keyup() 是在鍵盤松手就會觸發。

document.getElementsByClassName()

getElementsByClassName() 方法返回文檔中所有指定類名的元素集合,作為 NodeList 對象。NodeList 對象代表一個有順序的節點列表。NodeList 對象 我們可通過節點列表中的節點索引號來訪問列表中的節點(索引號由0開始)。

完整源碼

<template>
  <div class="parentBox">
    <div v-for="(item, index) in inputList" :key="index">
      <input type="text" v-model="item.pinless" class="inputValue" @keyup="keyboard($event, index)" @keydown="expurgate(index)" />
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      // 輸入框循環的數組
      inputList: [
        { pinless: "" },
        { pinless: "" },
        { pinless: "" },
        { pinless: "" },
        { pinless: "" },
        { pinless: "" },
      ],
    };
  },
  methods: {
    // 鍵盤松開事件
    keyboard(e, index) {
      let domNode = document.getElementsByClassName("inputValue"),
        currInput = domNode[index],
        nextInput = domNode[index + 1],
        lastInput = domNode[index - 1];
      if (e.keyCode != 8) {
        if (index < this.inputList.length - 1) {
          nextInput.focus();
        } else {
          currInput.blur();
        }
      } else {
        if (index != 0) {
          lastInput.focus();
        }
      }
    },
    // 鍵盤按下觸發
    expurgate(index) {
      this.inputList[index].pinless = "";
    },
  },
};
</script>
<style scoped>
.parentBox {
  padding: 20px;
  display: flex;
}
.parentBox div:nth-child(n + 2) {
  margin-left: 4px;
}
input {
  color: #606266;
  font-size: 18px;
  text-align: center;
  width: 54px;
  height: 62px;
  border: 2px solid gainsboro;
  border-radius: 4px;
}
</style>

實現效果

vue輸入框怎么實現輸完后光標自動跳到下一個輸入框中

到此,相信大家對“vue輸入框怎么實現輸完后光標自動跳到下一個輸入框中”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

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

vue
AI

巴林左旗| 桂阳县| 汕头市| 青海省| 中阳县| 彰化县| 郑州市| 博乐市| 凤山市| 交城县| 梅州市| 彰化市| 喀喇沁旗| 秦安县| 固阳县| 滁州市| 镇康县| 宁晋县| 仪征市| 曲阜市| 调兵山市| 天台县| 福州市| 泗水县| 农安县| 泰来县| 葫芦岛市| 讷河市| 英超| 东兴市| 富锦市| 彩票| 汉川市| 五莲县| 彭阳县| 湘阴县| 丰县| 剑河县| 灌云县| 东安县| 津南区|