el-table中el-input的autofocus无法自动聚焦的解决方案

需求

有一个表格展示了一些进度信息,进度信息可以修改,需要点击进度信息旁边的编辑按钮时,把进度变为输入框且自动聚焦,当鼠标失去焦点时自动请求更新接口。

注:本例以vue2 + element UI为例

分析

这个需求看着挺简单的啊,不就是默认展示数字,点击按钮时,把数字变成输入框吗,再给个自动聚焦autofocus,再监听一下失去焦点事件,这不就完了吗

示意图如下:
在这里插入图片描述

于是,我兴冲冲写下了如下代码

微解释:默认显示数字且非编辑状态,点击按钮时,显示输入框

<el-table-column label="完成占比" prop="progress" align="center"><template slot-scope="scope"><div v-if="!scope.row.isEditing">{{ scope.row.progress }}%<el-button size="mini" type="text" @click="handleEditPercent(scope.$index, scope.row)"><i class="el-icon-edit-outline"></i></el-button></div><el-input-numberv-else:ref="'progress' + scope.$index"v-model="scope.row.progress":min="0":max="100"size="small":controls="false"style="width: 80px;"autofocus@blur="handleBlur(scope.$index, scope.row)"></el-input-number></template>
</el-table-column>

但是,你在点击编辑按钮时,虽然显示了输入框,但是无法自动聚焦,点击后如下所示:
在这里插入图片描述

解决过程

看到没自动聚焦,于是乎我又想到手动聚焦,文档里有这方法,然后我又兴冲冲地试了下:
在这里插入图片描述

但是这是el-table中的el-input,都是循环渲染的,单个ref变了和值不好处理,虽然也能做,但这种方法也失败了。

后来分析了下,el-table 属于动态渲染组件,在表格渲染时,el-input 可能还未完全挂载到 DOM 上,所以 autofocus 属性不能正常发挥作用。

于是就转换了下思路,我也不需要啥啥乱七八糟的东西了,我只希望这个el-input出现时,我能通过这个dom节点的父节点查询到input,然后执行focus()方法

于是,我又封装了个指令,这下就不用管其他乱七八糟的东西了,只需要专注于本身:

directives: {focus: {inserted: function (el) {el.querySelector('input').focus()}}
},

然后在el-input里加了v-focus指令,这次再点击编辑按钮,终于亮了

在这里插入图片描述

原本以为是个小功能,没想到坑这么多!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/902610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用高斯溅射技术跨越机器人模拟与现实的鸿沟:SplatSim 框架解析

在机器人领域&#xff0c;让机器人在现实世界中精准执行任务是大家一直追求的目标。可模拟环境和现实世界之间存在着不小的差距&#xff0c;特别是基于 RGB 图像的操作策略&#xff0c;从模拟转移到现实时总是状况百出。 今天咱们就来聊聊 SplatSim 框架&#xff0c;看看它是怎…

【自然语言处理与大模型】如何知道自己部署的模型的最大并行访问数呢?

当你自己在服务器上部署好一个模型后&#xff0c;使用场景会有两种。第一种就是你自己去玩&#xff0c;结合自有的数据做RAG等等&#xff0c;这种情况下一般是不会考虑并发的问题。第二种是将部署好的服务给到别人来使用&#xff0c;这时候就必须知道我的服务到底支持多大的访问…

[FPGA基础] UART篇

Xilinx FPGA UART 硬件接口使用指南 1. 引言 UART (通用异步收发器) 是一种广泛使用的串行通信接口&#xff0c;因其简单、可靠和易于实现而成为 Xilinx FPGA 设计中的常见硬件接口。UART 用于在 FPGA 与外部设备&#xff08;如 PC、微控制器、传感器等&#xff09;之间进行数…

【Netty4核心原理】【全系列文章目录】

文章目录 一、前言二、目录 一、前言 本系列虽说本意是作为 《Netty4 核心原理》一书的读书笔记&#xff0c;但在实际阅读记录过程中加入了大量个人阅读的理解和内容&#xff0c;因此对书中内容存在大量删改。 本系列内容基于 Netty 4.1.73.Final 版本&#xff0c;如下&#xf…

用 PyTorch 和numpy分别实现简单的 CNN 二分类器

作业用到的知识&#xff1a; 1.Pytorch: 1. nn.Conv2d&#xff08;二维卷积层&#xff09; 作用&#xff1a; 对输入的多通道二位数据&#xff08;如图像&#xff09;进行特征提取&#xff0c;通过滑动卷积核计算局部区域的加权和&#xff0c;生成新的特征图。 关键参数&a…

使用n8n构建自动化工作流:从数据库查询到邮件通知的使用指南

n8n是一款强大的开源工作流自动化工具&#xff0c;可以帮助你将各种服务和应用程序连接起来&#xff0c;创建复杂的自动化流程。下面我将详细介绍一个实用的n8n用例&#xff1a;从MySQL数据库查询数据并发送邮件通知&#xff0c;包括使用场景、搭建步骤和节点部署方法。 使用场…

Vscode已经打开的python项目,如何使用已经建立的虚拟环境

在 VS Code 中使用已创建的 Conda/Mamba 虚拟环境 pe100&#xff0c;只需以下几步&#xff1a; 步骤 1&#xff1a;确保虚拟环境已存在 在终端运行以下命令&#xff0c;检查 pe100 环境是否已正确创建&#xff1a; conda activate pe100 python --version # 应显示 Python 3…

Volatility工具学习

背景 VMware虚拟机系统hang死&#xff0c;手动重启无法触发系统panic&#xff0c;从而不能触发kdump产生vmcore文件进行原因分析&#xff1b;此种情况下需要手动生成虚拟机内存快照&#xff0c;进而利用Volatility工具分析系统hang死的具体原因。 配置 使用VMware创建虚拟机…

学习笔记(C++篇)--- Day 4

目录 1.赋值运算符重载 1.1 运算符重载 1.2 赋值运算符重载 1.3 日期类实现 1.赋值运算符重载 1.1 运算符重载 ①当运算符被用于类类型的对象时&#xff0c;C语言允许我们通过通过运算符重载的形式指定新的含义。C规定类类型对象使用运算符时&#xff0c;必须转换成调用对…

Docker 快速入门教程

1. Docker 基本概念 镜像(Image): 只读模板&#xff0c;包含创建容器的指令 容器(Container): 镜像的运行实例 Dockerfile: 用于构建镜像的文本文件 仓库(Repository): 存放镜像的地方&#xff08;如Docker Hub&#xff09; 2. 安装Docker 根据你的操作系统选择安装方式:…

vue项目中使用tinymce富文本编辑器

vue使用tinymce 文章目录 vue使用tinymcetinymce富文本编辑器在这里插入图片描述 一、本文要实现二、使用步骤1.安装tinymce2.tinymce组件新建3. 在store添加商品详情的状态管理4. tinymce组件的引入 tinymce富文本编辑器 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下…

简单适配torch_npu不支持的ATen算子

简单适配torch_npu不支持的ATen算子 一、背景说明1.1 PyTorch扩展机制1.2 核心概念二、实现步骤详解2.1 实现前向、反向传播算子2.2 编译生成动态库2.3 测试验证程序三、关键点解析3.1 设计注意事项3.2 性能优化方向四、验证结果一、背景说明 1.1 PyTorch扩展机制 PrivateUse1…

同样的html标记,不同语言的文本,显示的字体和粗细会不一样吗

同样的 HTML 标记&#xff0c;在不同语言的文本下&#xff0c;显示出来的字体和粗细确实可能会不一样&#xff0c;原因如下&#xff1a; &#x1f30d; 不同语言默认字体不同 浏览器字体回退机制 CSS 里写的字体如果当前系统不支持&#xff0c;就会回退到下一个&#xff0c;比如…

基于 Spring Boot 瑞吉外卖系统开发(六)

基于 Spring Boot 瑞吉外卖系统开发&#xff08;六&#xff09; 菜品列表 在系统管理端首页&#xff0c;单击左侧菜单栏中的“菜品管理”&#xff0c;会在右侧打开菜品管理页面。 请求URL/dish/page&#xff0c;请求方法GET,请求参数page&#xff0c;pageSize。 该菜品列表…

计算机视觉与深度学习 | TensorFlow基本概念与应用场景:MNIST 手写数字识别(附代码)

TensorFlow 基本概念 TensorFlow 是一个开源的机器学习框架,由 Google 开发,核心概念包括: 张量(Tensor):多维数组,是数据的基本单位。计算图(Graph):早期版本中用于描述数据流和计算过程,2.x 默认启用即时执行(Eager Execution),兼顾灵活性和性能。层(Layers)…

vue+django+LSTM微博舆情分析系统 | 深度学习 | 食品安全分析

文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站&#xff0c;有好处&#xff01; 编号&#xff1a; D031 LSTM 架构&#xff1a;vuedjangoLSTMMySQL 功能&#xff1a; 微博信息爬取、情感分析、基于负面消极内容舆情分析…

RHCE第三次作业 搭建dns的正向解析服务器

server为服务器 client为客户端 设置主配置文件 在server下&#xff1a; [rootServer ~]#vim /etc/named.conf #进入到配置页面&#xff0c;并修改 设置区域文件 [rootServer ~]# vim /etc/named.rfc1912.zones 设置域名解析文件 [rootServer named]# cd /var/named…

Windows 同步技术-一次性初始化

组件通常设计为在首次调用时执行初始化任务&#xff0c;而不是加载它们时。 一次性初始化函数可确保此初始化仅发生一次&#xff0c;即使多个线程可能尝试初始化也是如此。 Windows Server 2003 和 Windows XP&#xff1a; 应用程序必须使用 互锁函数 或其他同步机制提供自己的…

OpenCV 中的角点检测方法详解

文章目录 引言1. Harris角点检测原理1.1 什么是角点&#xff1f;1.2 Harris算法的核心思想1.3 角点、边缘和平坦区域的区分 2. OpenCV实现Harris角点检测3. 总结 引言 在计算机视觉和图像处理中&#xff0c;特征点检测&#xff08;Feature Detection&#xff09;是一个关键任务…

全面介绍AVFilter 的添加和使用

author: hjjdebug date: 2025年 04月 22日 星期二 13:48:19 CST description: 全面介绍AVFilter 的添加和使用 文章目录 1.两个重要的编码思想1. 写代码不再是我们调用别人&#xff0c;而是别人调用我们!2. 面向对象的编程方法. 2. AVFilter 开发流程2.1 编写AVFilter 文件2.1.…