我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue输入框中输完后光标自动跳到下一个输入框中的实现方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue输入框中输完后光标自动跳到下一个输入框中的实现方法

前言

最近接到这么一个需求,做一个安全码的输入框,限制为6位数,但是每一个写入的值都是一个输入框,共计6个输入框,当前输入框写入值后,光标自动跳到下一个输入框中,删除当前输入框写入的值后再自动跳到上一个输入框中。

实现思路

首先我们需要通过 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输入框输完自动跳到下个内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue输入框中输完后光标自动跳到下一个输入框中的实现方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vue输入框中输完后光标自动跳到下一个输入框中的实现方法

最近在工作中遇到了些问题,总结下分享给同样遇到这个问题的朋友,这篇文章主要给大家介绍了关于vue输入框中输完后光标自动跳到下一个输入框中的实现方法,需要的朋友可以参考下
2023-03-07

vue输入框怎么实现输完后光标自动跳到下一个输入框中

本篇内容主要讲解“vue输入框怎么实现输完后光标自动跳到下一个输入框中”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue输入框怎么实现输完后光标自动跳到下一个输入框中”吧!实现思路首先我们需要
2023-07-05

JS删除光标后如何实现输入框中的内容自动向前移动?

JavaScript删除光标后,如何实现输入框中的内容自动向前移动?在开发Web应用程序时,经常会遇到需要对输入框的内容进行操作的场景。其中,删除光标后让输入框中的内容自动向前移动,是一个常见但也有挑战性的需求。在本文中,我们将介绍两种实现这一需求的方法:一种是利用JavaScript的Selection API进行文本操作,另一种是通过模拟键盘事件实现输入框中的内容自动向前移
2023-05-14

WPF怎么在自定义文本框中实现输入法跟随光标

这篇文章将为大家详细讲解有关WPF怎么在自定义文本框中实现输入法跟随光标,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文实现的效果如下实现本文的方法参考了 WPF 官方仓库的逻辑,可以在WPF仓库的wp
2023-06-29

怎么在Vue.js中实现一个带下拉选项的输入框

这篇文章将为大家详细讲解有关怎么在Vue.js中实现一个带下拉选项的输入框,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。注册组件通过将封装好的组件代码复制粘贴来注册全局组件。设计的时候有考虑
2023-06-14

编程热搜

目录