前端通过input 输入框实现动态添加行 , 键盘上下左右点击可同步操作中心位置
1. input 代码 ,我们项目组的input封装了,不过不影响使用
通过 @keyup 事件绑定show方法,需要将当前行的信息以及index传递,方便操作
另外要单独给这些需要操作的输入框添加class,方便后面获取
<el-table-column className="mycell" min-width="auto;" align="center" label="尺寸" >
<template #default="scope">
<hd-inputupp @keyup="show($event,scope.$index)" class="table_input normalB_input" v-model="scope.row.clothSize" >
<template #append>
<div style="color:red;line-height: 24px">*</div>
</template>
</hd-inputupp>
</template>
</el-table-column> <el-table-column className="mycell" min-width="auto;" align="center" label="用量(KG)" >
<template #default="scope">
<el-input @keyup="show($event,scope.$index)" class="table_input normalY_input" v-model="scope.row.amount" >
<template #append>
<div style="color:red;line-height: 24px">*</div>
</template>
</el-input>
</template>
</el-table-column> <el-table-column className="mycell" min-width="auto;" align="center" label="理布票用量(KG)" >
<template #default="scope">
<el-input @keyup="show($event,scope.$index)" class="table_input focusB_input" v-model="scope.row.ticketAmount" >
<template #append>
<div style="color:red;line-height: 24px">*</div>
</template>
</el-input>
</template>
</el-table-column> <el-table-column className="mycell" min-width="auto;" align="center" label="价格" >
<template #default="scope">
<el-input @keyup="show($event,scope.$index)" class="table_input focusY_input" v-model="scope.row.price" >
<template #append>
<div style="color:red;line-height: 24px">*</div>
</template>
</el-input>
</template>
</el-table-column>
2. 方法实现
show(ev,index){
let newIndex ;
//通过ev 获取 当前input 名称 用于判断属于哪列
let clssName = ev.target.offsetParent.className;
//每一列
if(clssName.indexOf('normalB_input') != -1){
newIndex = index*4 ;//要操作几行就*几行
} else if (clssName.indexOf('normalY_input') != -1) {
newIndex = index*4 + 1 ;
} else if (clssName.indexOf('focusB_input') != -1) {
newIndex = index*4 + 2;
} else if (clssName.indexOf('focusY_input') != -1) {
newIndex = index*4 + 3;
}
let inputAll = document.querySelectorAll('.table_input input');
//向上 =38
if(ev.keyCode == 38){
//console.log("上");
//当焦点在第一行的时候 按向上的时候焦点要聚焦到前一列的最后一个
if(newIndex >=1 && newIndex<=3){
newIndex = newIndex + 47;
} else {
newIndex -= 4 ;
}
if( inputAll[newIndex] ){
inputAll[newIndex].focus();
}
}
//下 = 40
if(ev.keyCode == 40){
//console.log("下");
//当newIndex 在最后一行的时候 焦点要聚焦到 下一列的第一个
newIndex += 4 ;
if(newIndex>=inputAll.length){
this.add();//我们项目需求是按下键的时候会新增行
}
if( inputAll[newIndex] ){
inputAll[newIndex].focus();
}
}
//左 = 37
if(ev.keyCode == 37){
//console.log("左");
newIndex -= 1 ;
if( inputAll[newIndex] ){
inputAll[newIndex].focus();
}
}
//右 = 39
if(ev.keyCode == 39){
//console.log("右");
newIndex += 1 ;
if( inputAll[newIndex] ){
inputAll[newIndex].focus();
}
}
},
前端通过input 输入框实现动态添加行 , 键盘上下左右点击可同步操作中心位置的更多相关文章
- 移动端 input 输入框实现自带键盘“搜索“功能并修改X
主要利用html5的,input[type=search]属性来实现,此时input和type=text外观和功能没啥区别: html代码入下: <form action="" ...
- 前端限制input输入框(只能输入正整数)
<input onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{th ...
- 【前端】input输入框只能输入大于等于0的正数
大于等于0的正数,允许小数 <input type="number" step="1" min="0" onkeyup="t ...
- H5页面input输入框含有键盘自带的表情符时显示异常
在做一个关于新闻的评论功能的H5页面时,需求里面要求能够发送表情显示表情,如果使用自定义的表情库,则在评论也还要加载大量的表情符图片,极大的影响加载速度,消耗流量,去看了下别的新闻网页版的评论部分也没 ...
- 移动端input“输入框”常见问题及解决方法
转自 https://www.cnblogs.com/ljx20180807/p/9837748.html 1. ios中,输入框获得焦点时,页面输入框被遮盖,定位的元素位置错乱: 当页input存在 ...
- Input 输入框
Input 输入框 通过鼠标或键盘输入字符 <el-input v-model="input" placeholder="请输入内容"></e ...
- 苹果微信input输入框被键盘遮挡
最近一个项目,input输入框需要在页面的最下面(position:fixed),这样,当键盘获取焦点的时候, 苹果自带键盘不会挡住输入框,但是搜狗输入法的键盘就会挡住.可以用以下方法解决: docu ...
- jQuery动态添加、删除按钮及input输入框
输入框的加减实现: <html> <head> <meta charset="utf-8"> <title>动态创建按钮</t ...
- input输入框失去焦点,软键盘关闭后,滚动的页面无法恢复到原来位置
H5微信页面开发,软键盘弹起后,若原输入框被遮挡,页面整体将会上移,然而当输入框失焦,软键盘收起后,页面未恢复,导致弹框里的按钮响应区域错位. 解决方案:给输入框(或select选择框)添加失去焦点的 ...
- H5微信页面开发 IOS系统 input输入框失去焦点,软键盘关闭后,被撑起的页面无法回退到原来正常的位置,导致弹框里的按钮响应区域错位
H5微信页面开发,软键盘弹起后,若原输入框被遮挡,页面整体将会上移,然而当输入框失焦,软键盘收起后,页面未恢复,导致弹框里的按钮响应区域错位. 解决方案:给输入框(或select选择框)添加失去焦点的 ...
随机推荐
- 推荐ssh工具
介绍一些我常用的ssh工具 1.Xshell Xshell应该是一款家喻户晓的ssh连接工具,本人有幸也在很长一段时间都在使用Xshell,但是Xshell他是收费的!而且每次关闭后都会有一个提示 ...
- jupyter notebook 切换环境
jupyter-notebook 中切换 conda 虚拟环境 介绍 jupyter notebook是anaconda中root目录中默认的python环境,如果要使拥创建的其他环境,则需要安装 ...
- SQL CASE 标注
根据 状态值 显示中文备注 case when a.zht='0' then '录入' when a.zht='1' then '待审核' when a.zht='2' then '已审核' end ...
- FileZilla链接centos虚拟机不显示问题
这段时间因为不是很忙,一直想学习一下网络安全方面的技术,准备考个信安中级,网络安全方面经常用到虚拟机,所以及用vm新建虚拟机后,一直发现连不上FileZilla,于是就在网上搜了一下,有一些参考问题, ...
- 用JMeter对MySQL数据库进行压测
转载链接:https://www.cnblogs.com/Jadie/p/8056541.html 参考链接:https://blog.csdn.net/qq_35389417/article/det ...
- 日常开发记录-this.$message,this.$prompt,交换弹窗确定和取消按钮的位置,确定在左,取消在右
代码: <template> <el-button type="text" @click="open">点击打开 Message Box ...
- c++游戏编程(2)多文件编程与命名空间
文章目录 前言 1 多文件编程 1.1 头文件 1.1.1 头文件的组成 1.1.2 头文件的储存 1.2 多文件编程 2 命名空间 总结 引用文章 前言 这是我的第二篇博客 上篇文章写了很多c++开 ...
- Java反射获取方法参数名
正常环境下,获取不到参数的名称,使用java反射时,第一个参数名是arg0,第二个参数是arg1,与我们代码中写的对不上. java反射过程中,需要我们做好判断: if(!parameter.is ...
- 所谓的安装phpmyadmin
所谓的安装phpmyadmin, 或者 安装drush, 都是下载一个文件, 然后URL访问或者命令行访问这个文件, 进入到某个页面或者获得某个结果.刚开始觉得很神秘哦, 为什么?--安装软件分两种1 ...
- ConvTranspose的output_padding问题
当stride>=2时,反向传播,由dy, w得到dx的时候,dx的形状不唯一. 例如input_shape (7,7)或者(8,8)在kernel(3,3)上,以stride=2进行卷积, 最 ...