当前位置: 首页 > news >正文

关于多个el-input的自动聚焦,每输入完一个el-input,自动聚焦到下一个

讲解原理或者思路:

如果你有多个el-input,想要实现每输入完一个输入框,然后自动聚焦到下一个输入框,同理,如果每删除一个输入框的值,自动聚焦到上一个输入框。

条件

那么首先要做的就是,设置条件,在什么时候自动聚焦到下一个呢?

比如监听输入内容,简单点儿,在输入完一个字符之后(或者说在监听到输入框有更新的时候)就自动聚焦到下一个,好,先看html结构

注意我使用的是vue3组合式API

            <el-inputv-for="(item, index) in 6"    //循环:key="index"                    //唯一标识v-model="code[index]"            //输入绑定maxlength="1"                    //我们说到的条件,识别条件,这个是重点@keyup.delete="handleDelete(index)" //这个是键盘监听事件,当我们使用删除键的话@input="handleInput(index)"       //这个是原生的input输入框监听事件placeholder=""autocomplete="off":ref="el=>inputs[index] = el"   //这个是监听DOM元素
这是一个箭头函数,当Vue渲染元素时会自动调用该函数,el是当前元素的DOM实例(这里就是每个<el-input>组件的DOM元素)inputs[index]=el表示将这个DOM实例存储到inputs数组的第index个位置></el-input>

逻辑

也就是说,当我的输入内容一旦有变化就会自动聚焦到下一个

<script setup>
import { ref, nextTick } from 'vue';// 存储输入的验证码,初始化一个数组
const code = ref(Array(6).fill(''));
// 存储输入框
const inputs = ref([]);// 处理输入事件
const handleInput = (index) => {// 确保值已更新后再执行聚焦操作nextTick(() => {// 当输入内容且不是最后一个输入框时,聚焦到下一个
当输入框有值,并且当前输入框的索引数小于5的话,因为我们是从0开始的,那么就让存储存储输入框的索引值++,然后聚焦if (code.value[index] && index < 5) {inputs.value[index + 1]?.focus();}});
};// 处理删除事件
const handleDelete = (index) => {// 当删除后当前输入框为空且不是第一个时,聚焦到上一个
当删除输入框的内容之后,正好满足if条件,这时让存储输入框的索引值减减,然后聚焦.focus就是聚焦if (!code.value[index] && index > 0) {inputs.value[index - 1]?.focus();}
};
</script>

http://www.lryc.cn/news/626634.html

相关文章:

  • Rust并发编程:解锁高性能系统的密钥
  • 第12课_Rust项目实战
  • 批处理指令常见问题
  • 软考高级--系统架构设计师--案例分析真题解析
  • 【clion】cmake脚本1:调试脚本并构建Fargo项目win32版本
  • 无需驱动!单文件实现键盘按键禁用的技术方案
  • 使用Jmeter轻松实现AES加密测试
  • 01-Docker概述
  • 云计算学习100天-第26天
  • FreeRTOS入门知识(任务通知(二)以及定时器浅析)(七)
  • 2025年8月技术问答第2期
  • AI 与 OCR 识别:深度融合的智能信息提取技术
  • Cobbler 自动化部署服务介绍与部署指南
  • 微服务自动注册到ShenYu网关配置详解
  • 亚矩阵:跨境卖家 YouTube 私域矩阵搭建的高效解决方案
  • 使用acme.sh自动申请AC证书,并配置自动续期,而且解决华为云支持问题,永久免费自动续期!
  • 5.k8s控制器-Replicaset-Deployment、pod 反亲和性
  • 基于截止至 2025 年 6 月 4 日,在 App Store 上进行交易的设备数据统计,iOS/iPadOS 各版本在所有设备中所占比例详情
  • 宿主机与容器通过 rmw_cyclonedds_cpp中间件进行ros2结点之间的通讯的相关注意事项
  • Gin自定义Error中间件
  • synchronized锁,ReentrantLock 锁
  • 路由器NAT的类型测定
  • ios八股文 -- Objective-c
  • 机器翻译 (Machine Translation) 经典面试笔试50题(包括详细答案)
  • 游戏本不插电源适配器不卡设置教程
  • 面试 TOP101 二分查找/排序专题题解汇总Java版(BM17 —— BM22)
  • TENON AI-AI大模型模拟面试官
  • keepalived简介
  • 阿里通义千问Qwen-Long 快速文档解析
  • 商城系统开发全解析:架构设计、功能模块与技术选型指南