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

解决el-table中使用el-input无法聚焦问题

在el-table中点击单元格时使用el-input或其他表单组件编辑单条数据。会出现聚焦不上的问题,需要手动点击才能够聚焦。究其原因是因为点击单元格时页面已自动聚焦到单元格,此时无法自动聚焦到对应的表单,需要手动设置。

在这里插入图片描述

<template>
  <el-table
    :data="tableData"
    @cell-click="cellclickHandle"
  >
	<el-table-column prop="text" label="编辑" align="right">
      <template #default="{ row }">
        <el-input
          v-focus
          style="height: 20px"
          v-model="row.text"
          @blur="cellBlur(1, row)"
          v-if="row?.isEdit ?? false"
        />
        <span v-else>{{ row.text }}</span>
      </template>
    </el-table-column>
  </el-table>
</template>

<script setup>
import { reactive } from "vue"
  
....

//自定义指令
const vFocus = {
  mounted: el => {
    //清除el-table的cell聚焦
    document.activeElement.blur()
    const targetInput = el.getElementsByTagName("input")[0]
    targetInput.focus()
  }
}

//表格点击
let cacheRow = reactive({})
const cellclickHandle = (row, column) => {
  const { property } = column
  if (!["text"].includes(property)) return
  cacheRow = JSON.parse(JSON.stringify(row))
  if (property === "text") {
    row.isEdit = true
  } 
}

const cellBlur = async (input, row) => {
  row.isEdit = false
  if (cacheRow.text == row.text) return
  await ...
  ElMessage.success("编辑成功")
}
</script>

<style lang="scss" scoped>
</style>


http://www.kler.cn/news/291166.html

相关文章:

  • OpenAI transcription API bad request
  • ubuntu20.04 colmap安装
  • 假期学习-- iOS runloop了解和使用
  • 【STM32】寄存器点灯
  • 比特币客户端和API
  • 日程安排组件DHTMLX Scheduler v7.1 - 支持RFC-5545格式
  • VSCode中多行文本的快速前后缩进
  • kitti深度估计数据集介绍
  • Python知识点:Python开发中,如何使用Git进行版本控制
  • WEB渗透Linux提权篇-可写文件提权
  • 集成电路学习:什么是MOSFET(MOS管)
  • 【kubernetes】污点配置、cm、secret练习
  • 数学基础 -- 线性代数之共轭转置矩阵
  • 体会循环---冒泡排序
  • 2024.9.4
  • 在js渲染的dom中的事件中传递对象
  • 米家商城主题 html 页面源码分享,可用于网页设计作业
  • 室内导航定位系统在医院的应用与部署
  • Kubernetes学习指南:保姆级实操手册05——配置集群HA负载均衡
  • 智能巡检机器人创新设计的关键技术