vue3实现 多个input框输入 自动聚焦下一个

2023-11-06

我最近要实现 车牌号输入框的功能,vant里有密码输入框,功能一样,但是vant只有数字键盘。不符合我的需求,所

<!-- 查询客户 -->
<template>
    <div class="page" v-show="data.show">
        <div class="licensePlate">
            <div class="input">
                <input type="text" class="inputValue" v-for="(item, index) in data.inputList" maxlength="1"
                    v-model="item.pinless" :key="index" @keydown="backClick" ref="inputList">
            </div>
        </div>

    </div>
</template>

<script>
import { looseIndexOf } from '@vue/shared'
import { onMounted, reactive, getCurrentInstance, watch, computed } from 'vue'
import { useRouter, useRoute } from 'vue-router'
export default {
    setup() {

        let routr = useRouter()
        let route = useRoute()

        let data = reactive({
            // 输入框循环的数组
            inputList: [
                { pinless: "" },
                { pinless: "" },
                { pinless: "" },
                { pinless: "" },
                { pinless: "" },
                { pinless: "" },
                { pinless: "" },
                { pinless: "" },
            ],
        })

        let inputList = reactive({

        })

        // 获取inputDom元素
        let inputValue = getCurrentInstance()
        onMounted(() => {
            inputList = inputValue.refs.inputList
        })
        // 监视input框输入,自动聚焦下一个
        watch(data.inputList, (newValue) => {
            for (let inx = 0; inx < newValue.length; inx++) {
                if (newValue[inx].pinless != '') {
                    if (inx === 7) {
                        for (let index = 0; index < newValue.length; index++) {  // 用户从中间开始输入情况处理
                            if (newValue[index].pinless === '') {
                                inputList[index].focus()
                                return
                            }
                        }
                    } else {
                        inputList[inx + 1].focus()
                    }
                }
            }
        })
        // input框删除事件
        const backClick = ((val) => {
            if (val.keyCode === 8) {
                setTimeout(() => {
                    for (let index = 0; index < data.inputList.length; index++) {
                        if (data.inputList[index].pinless === '') {
                            if (index === 0) {
                                for (let i = 0; i < data.inputList.length; i++) { // 用户从中间删除情况处理
                                    if (data.inputList[i].pinless != '') {
                                        inputList[i].focus()
                                    }
                                }
                                return
                            } else {
                                inputList[index - 1].focus() // 删除上一个input聚焦
                                return
                            }
                        }
                    }
                })
            }
        })


        return {
            data,
            backClick,
        }
    }
}
</script>

<style scoped lang="scss">
.page {
    width: 6.86rem;
    margin: 0 auto;

    .licensePlate {
        
        .input {
            margin-top: 0.24rem;
            display: flex;
            justify-content: space-between;

            .inputValue {
                outline: none;
                padding: 0;
                width: 0.5rem;
                height: 1rem;
                border: 0.016rem solid #CCCCCC;
                border-radius: 0.16rem;
                align-items: center;
                justify-content: space-evenly;
                padding-left: 0.3rem;
            }

          
        }
    }

   
}

</style>

以手搓了一个。其中考虑到,中间输入、中间删除的情况

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue3实现 多个input框输入 自动聚焦下一个 的相关文章

  • 在 IE8 中无法正确从 JSONP 文件读取特殊字符

    同样的问题上一个问题 https stackoverflow com questions 4742771 special characters are not being read from a jsonp file correctly我专
  • 当视图切换到其他浏览器选项卡时,网页 javascript 的行为有所不同

    抱歉我写标题时的英文不好 我已经尽力了 直播站点 http tt fbcwinterretreat org http tt fbcwinterretreat org 请注意 为了更好地了解发生的情况 我建议您降低窗口高度 问题是 如果您一直
  • 如何禁用 html 中特定元素的复制

    在这里 当选择 3 个元素时 我遇到了复制选项的问题 所有三个元素都被复制 但是 我有一个 Jquery 函数来禁用中间元素的复制 我如何在选择 3 个元素时禁用它 但是 如果我单独选择中间元素 它就不会复制 notcp bind cut
  • 在 uiwebview 中使用 javascript 将样式应用于文本范围

    我在 iPhone 上的 UIWebView 中将一些简单样式的文本显示为 html 它基本上是一系列段落 偶尔有强烈或强调的短语 在运行时 我需要将样式应用于文本范围 有一些类似的场景 其中之一是突出显示搜索结果 如果用户搜索了 某事 我
  • HTML 5 点对点视频的可能性? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 搜索引擎如何处理 AngularJS 应用程序?

    我发现 AngularJS 应用程序在搜索引擎和 SEO 方面存在两个问题 1 自定义标签会发生什么 搜索引擎会忽略这些标签中的全部内容吗 即假设我有
  • 通过删除顶部和底部的空间来添加段落中的行高

    我正在尝试使用 css 在段落中添加行高 下面是我的html div p Lorem ipsum dolor sit amet oratio doctus his an Nisl saperet delenit ad eos his ero
  • 为民意调查结果创建彩色条

    在我的网络应用程序中 我想用彩色条显示民意调查结果 其长度与选票百分比成正比 如何使用 HTML CSS 实现此目的 该网站包含一些很好的示例 http apples to oranges com blog post css for bar
  • 如何仅使用

    我有下面使用表标签的代码 但我想要使用 div 标签的同一张表 我已经尝试过但无法做到相同 下面我也附上了图像 请帮助我使用 div 标签创建相同的表
  • asp.net aspx 的标记验证

    我使用 asp net 创建了一个网站 在互联网上启动网站之前 我想对我使用的网络表单进行验证测试 我已经知道如何通过 W3C 标记验证服务来验证 HTML 静态网站 是否可以通过上传文件在 Webforms aspx 上执行相同的验证方法
  • 使用自定义数据属性是否会产生浏览器兼容性问题?

    我必须在自定义数据标签或 id 之间进行选择 我想选择自定义数据标签 但我想确保它们不会导致当今最广泛使用的浏览器的浏览器兼容性问题 我正在使用 jQuery 1 6 我的特定场景涉及到我需要为多个操作引用 commentId 的情况 di
  • 如何在 Bootstrap 中将单选按钮设置为“选中”? [复制]

    这个问题在这里已经有答案了 我使用 Bootstrap 按钮作为单选按钮 http getbootstrap com javascript buttons http getbootstrap com javascript buttons 这
  • 如何在CSS中水平对齐div

    我在一个容器内有三个子 div 我想水平对齐这些 div 我尝试使用CSSfloat财产 但圆圈正在变成椭圆形 标记代码 div class container info box clearfix div class circle div
  • 在java中将HTML转换为RTF?

    我需要将 HTML 转换为 RTF 我正在使用以下代码 private static String convertToRTF String htmlStr OutputStream os new ByteArrayOutputStream
  • 通过标记或JS强制下载

    假设我在 CDN 来自 Rackspace 的云文件 上有一个文件 以及一个包含该文件链接的静态 html 页面 有什么方法可以强制下载此文件 以防止它在浏览器中打开 例如 mp3 我们可以让我们的服务器读取该文件并将相应的标头设置为 he
  • html/js 中从右到左和/或从上到下的文本?

    如何在浏览器中为用户输入创建从右到左和从上到下的文本字段 有没有本地方法可以做到这一点 或者也许有解决方法 从上到下可能像日语或象形文字 对于 RTL 文本字段 您可以使用 HTMLdir属性 如 ime Vidas 已经提到的 或 wit
  • html 基目录和子目录

    在我的 html 中我有 但我的链接全部转到 mydomain com 没有 dev 子文件夹 为什么我的链接没有指向子文件夹 提前致谢 编辑 我的链接html是 div ul li a href index html Home a li
  • 如何在网页上显示进度条直到网页完全加载?

    我想在网页中显示进度条 加载弹出窗口 直到页面完全加载 我的网页很重 因为它包含一个 HTML 编辑器 这是一个基于 jQuery 的 HTML 编辑器 需要很多时间才能完全加载 在加载时 我希望在页面上显示一个进度条 该进度条将在整个页面
  • Android:Html 锚链接仅在 Web 视图中有效一次

    在使用锚链接加载 html 内容时 我在 webview 中遇到一些奇怪的问题 以下代码非常适合锚标记 但是只有一次 第二次当我按下锚标签时不工作 protected void onCreate Bundle savedInstanceSt
  • 如何在流体宽度表中使用省略号而不使每列大小相同?

    假设我的表中的列是id name description and phone The description列的长度为 1 255 个字符 但 id 最多只有 3 个字符 我希望列的大小适当 而不是每列的大小相同 我想要descriptio

随机推荐

  • 卷积:kernel size/padding/stride

    卷积的原理 卷积尺寸变化 输出尺寸 输入尺寸 filter尺寸 2 padding stride 1 宽和高都是这么计算的 输入图片大小为200 200 依次经过一层卷积 kernel size 5 5 padding 1 stride 2
  • 带你解决java内存爆炸和CPU100%的问题

    文章目录 java 内存爆炸 CPU100 问题分析 定位与解决 背景 堆内存溢出 问题思路整理 堆外内存分析 问题思路整理 CPU 100 问题排查 引发原因 java 内存爆炸 CPU100 问题分析 定位与解决 背景 今天给java开
  • Unity半透明物体+投射阴影+接受阴影

    前置 水流动效果 透明 物体实现半透明有透明度测试和透明度混合两种方式 不同方式接受和投射阴影的方式有所差别 透明度测试阴影效果图 正方体的阴影一部分打在了水平面上 一部分在白色平面上 由于透明度测试使得水平面的右半部分为完全透明 所以白色
  • CNVD证书获得及要求

    CNVD证书获得及要求 前言 CNVD证书 简介 要求 挖掘思路 定位目标 搜索案例 漏洞类型 证书展示 文件上传 逻辑漏洞 弱口令 ps 前言 4月份利用闲时时间对学校资产进行了一波渗透测试 发现蛮多的漏洞 这其中就发现了这次证书的漏洞厂
  • 2020-09-10 nginx 流转发 ftp 服务器报错: GnuTLS 错误 -110

    ginx 流转发 ftp 服务器报错 GnuTLS 错误 110 报错信息 filezilla ftp tls 连接 ftp 服务器没问题 访问 nginx 服务 转发到ftp 服务器会报错 如下 错误 GnuTLS 错误 110 位于 g
  • 异常值处理

    异常值处理是数据预处理中的一个重要步骤 随着大数据时代的到来 异常值处理也越来越重要 本文主要总结了一些常用的判断异常值的方法 1 3 准则 要求数据服从正态分布 认为大于 3 或小于 3 的实验数据值作为异常值 其中 为数据均值 为数据标
  • vscode 导入python库_vscode 导入的三方库没有代码提示的问题

    发现在vscode里面 关于tensorflow的内容都不提示 需要一个字母一个字母的敲 在tensorflow包下的 init py文件中定义了一个contrib变量表示tensorflow contrib包下的内容 但是tensorfl
  • QQ空间扫码登录协议 Java

    运行环境 服务器 Centos7 6 Docker Mysql 后端 IDEA2019 3 3 JDK1 8 Maven lombok okhttp SpringBoot fastjson log4j 前端 D2Admin Axios El
  • 为你精选86个本科软件工程专业的计算机毕业设计项目推荐

    对于即将步入毕业设计阶段的计算机专业学生们 找到合适的题目和完成项目的压力也许正在困扰着你 今天 我们会给大四的学生分享一些毕业设计项目 希望可以给正在苦恼的你提供一些帮助 一 成品列表 以下所有springboot框架项目的源码博主已经打
  • 36_windows环境debug Nginx 源码-使用 VSCode 和WSL

    文章目录 配置 WSL 编译 Nginx VSCode 安装插件 launch json 配置 WSL sudo apt get y install gcc cmake sudo apt get y install pcre sudo ap
  • Pandas知识点-逻辑运算

    Pandas知识点 逻辑运算 逻辑运算在代码中基本是必不可少的 Pandas的逻辑运算与Python基础语法中的逻辑运算存在一些差异 所以本文介绍Pandas中的逻辑运算符和逻辑运算 本文使用的数据来源于网易财经 具体下载方法可以参考 ht
  • RuntimeError: CUDA error: initialization error when calling `cusparseCreate(handle)

    原代码 tf swingbase arm torch matmul torch inverse tf base upper torch inverse tf uppernew base 改成 tf swingbase arm torch m
  • vscode中终端字体设置

    整理了一些vscode中终端字体及各种样式的设定 废话不多说 看下面 把下面的粘贴到 setting json 中 根据个人需要可以更改样式 瞎搞的 大部分应该准确 自己调试出来的 workbench colorCustomizations
  • 沈阳师范大学C++ pta第三章 指针引用

    沈阳师范大学C pta第三章 指针引用 判断题 1 字符串常量实质上是一个指向该字符串首字符的指针常量 T 2 定义一个指针数组并初始化赋值若干个字符串常量 则指针数组并不存放这些字符串 而仅仅指向各个字符串 T 3 指向整数指针的指针与指
  • idea 配置详解 (二) 之editor 详解

    3 File Settings Editor 3 1 File Settings Editor General 3 1 1 File Settings Editor General Auto Import 3 1 2 File Settin
  • Qt应用开发(基础篇)——输入对话框 QInputDialog

    一 前言 QInputDialog类继承于QDialog 是一个简单方便的对话框 用于从用户获取单个值 对话框窗口 QDialog QInputDialog输入对话框带有一个文本标签 一个输入框和标准按钮 输入内容可以字符 数字和选项 文本
  • html 浏览器存储方式

    浏览器有三种本地存储方式 1 localstorage 2 sessionStorage 3 cookie 浏览器 F12 打开调试模式 可以看到 点击对应域名 可以看到当前域名下存储的数据 是以key value形式存储的 三种方式的共同
  • 自己动手开发编译器之参考博客

    http www cnblogs com Ninputer archive 2011 06 10 2077991 html 2588239 可以参考这个博客进行开发 加油哈
  • 短视频平台-小说推文(番茄小说)推广任务详情

    字节旗下平台 番茄小说 今日头条 抖音故事 抖音漫画官方每周只出一次数据 预计每周二出上周四之前的数据 有时官方回传数据较晚 会延迟到周三出 请达人知悉 注意 再次强调 番茄拉新规则 是以设备第一次下载番茄小说后搜的第一个别名为一个有效拉新
  • vue3实现 多个input框输入 自动聚焦下一个

    我最近要实现 车牌号输入框的功能 vant里有密码输入框 功能一样 但是vant只有数字键盘 不符合我的需求 所