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.pswp.cn/news/902610.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/902610.shtml
英文地址,請注明出處:http://en.pswp.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.…