1、此功能已集成到TTable组件中

2、最终效果

3、关键代码

 // 键盘事件handleKeyup(event, index, key) {if (!this.isKeyup) returnthis.copyTableData = JSON.parse(JSON.stringify(this.tableData))// 向上键if (event.keyCode === 38) {// 获取到所有class为[key]的dom列表let doms = document.getElementsByClassName(key)if (!index) {index = this.copyTableData.length}// 选中类表中第index个,向上故而减1,dom里头包含的input,获取焦点以及选中input里的内容if (doms.length) {let domif (doms[index - 1].getElementsByTagName('input')[0]) {dom = doms[index - 1].getElementsByTagName('input')[0]} else {dom = doms[index - 1].getElementsByTagName('textarea')[0]}dom.focus()// dom.select()}}// 向下键if (event.keyCode === 40) {let doms = document.getElementsByClassName(key)if (+index === this.copyTableData.length - 1) {index = -1}if (doms.length) {let domif (doms[index + 1].getElementsByTagName('input')[0]) {dom = doms[index + 1].getElementsByTagName('input')[0]} else {dom = doms[index + 1].getElementsByTagName('textarea')[0]}dom.focus()// dom.select()}}// 回车向右移动if (event.keyCode === 13) {let keyName = this.columns.map(val => val.prop)let num = 0if (key === keyName[keyName.length - 1]) {if (index === this.copyTableData.length - 1) {index = 0} else {++index}} else {keyName.map((v, i) => {if (v === key) {num = i + 1}})}let doms = document.getElementsByClassName(keyName[num])if (doms.length) {let domif (doms[index].getElementsByTagName('input')[0]) {dom = doms[index].getElementsByTagName('input')[0]} else {dom = doms[index].getElementsByTagName('textarea')[0]}dom.focus()// dom.select()}}},

4、注意点

1、如果单元格编辑使用了插槽功能,需要在插槽上添加一个class(这个类即:当前列的porp值)
2、porp不能重复(正常也不会存在)

5、demo地址

GitHub源码地址

Gitee源码地址

基于ElementUi或Antd再次封装基础组件文档

TTable组件封装地址

vue+ElementUI el-table表格单元格编辑增加键盘事件功能(向上、向下、回车键盘事件)相关推荐

  1. vue项目element-ui的table表格单元格合并

    一.合并效果 二全部代码 <template><div class="table-wrap"><el-table:data="tableDa ...

  2. element-ui 设置table表格单元格背景样式

    在table表格绑定call-style属性,声明一个方法就可以设置样式了: <el-table border stripe height="76vh" v-loading= ...

  3. Vue + Element-ui 实现table表格 数据相同项合并

    Vue + Element-ui 实现table表格 数据相同项合并 通过给table传入span-method方法可以实现合并行或列,方法的参数是一个对象 data() {return {table ...

  4. vue+elementui 项目 table表格自定义排序规则

    vue+elementui 项目 table表格自定义排序规则 官方解释: 在列中设置 sortable 属性即可实现以该列为基准的排序,接受一个 Boolean,默认为 false.可以通过 Tab ...

  5. Layui table表格单元格合并问题

    Layui table表格单元格合并 人丑话不多, 直接上方法: /*** * @param fieldName 要合并列的field属性值* @param index 表格的索引值 从1开始* @d ...

  6. ElementUI如何校验表格单元格内容?其实很简单

    提要 这篇文章算是<深入了解 Element Form 表单动态验证问题>的延伸. 相信大伙肯定遇到过这样的需求,在一个表单内容里面嵌套一个表格,同时需要校验表格里面的某些单元格内容,如果 ...

  7. table表格单元格padding_html表格单元格间距

    html中单元格间距与单元格边距的区别就是cellspacing和cellpadding之间的区别,赐教. 定义和用法 cellSpacing 属性可设置或返回在表格中的单元格之间的空白量(以像素为单 ...

  8. iview table表格单元格的动态合并

    1. 需求 需要将从后台获取的数据,在前端渲染时,如果同一列相邻的数据相同,则合并成一个单元格. 即: 需要将上图两个单元格合并,成果图如下 2. 问题 本项目使用的是iview组件,iview组件也 ...

  9. table表格单元格的合并详解

    1.html实现表格 <el-tablemax-height="300":columns="columns":data="tableData&q ...

最新文章

  1. 第五章ThinkingInJava
  2. Java多线程编写简易飞机大战(一)
  3. CentOS6.5+puppet3.7.3 安装、配置及测试
  4. Access库的小问题
  5. Linux系统下按了Ctrl+s锁定屏幕后怎么办?
  6. linux 查看可执行文件动态链接库相关信息(转)
  7. python 嵌套型partials(nested partials)的使用
  8. Controller计算值传到jsp页面,用session传值
  9. Windows安装ActiveMQ记录
  10. 细说 Form (表单)(转)
  11. 【5003】马遍历问题
  12. java实现生成pdf_详解Java生成PDF文档方法
  13. PHPCMS2008 二次开发摘要
  14. IMX8mp alsa音频调试
  15. 手机整人脚本html,教大家用vbs代码制作恶搞整人
  16. 基于FPGA的出租车计费器的设计
  17. 如何在application里面退出打开的activity
  18. 女性睾酮水平高(High Testosterone Levels in Women)
  19. 怎样让计算机背景图片变大,电脑上如何使照片调成1寸??excel调整背景图片大小...
  20. 记FTP链接:Server Reply: SSH-2.0-OpenSSH_8.0

热门文章

  1. 文本数据增强-同义词替换、随机交换、随机插入、随机删除
  2. vim的变量、文件比对、打开多个文件、day4,5,6,7,8练习题
  3. python 给图像添加合成透明图片贴纸
  4. 数值计算方法--插值
  5. Spring注解@Primary的意思
  6. 未明学院:别做那只迷途的候鸟
  7. 优秀程序员因何而优秀?
  8. duilib-CComboUI执行SelectItem无效果排查
  9. Python小项目【画玫瑰花、画生日蛋糕、】
  10. 一个 DAG 工作流引擎的设计实现源代码实例