关于element el-input的autofocus失效的问题及解决

目录
  • element el-input的autofocus失效
  • elementUI el-input每次输入一个字符后自动失去焦点
  • 总结

element el-input的autofocus失效

需求:下拉新增row, 最后一个定位focus

<el-table
          :data="infoData.itemList"
          fit
          header-cell-class-name="cellClass"
          row-class-name="rowClass"
        >
          <el-table-column v-if="userType === 2" width="50">
            <template slot-scope="{$index}">
              <div class="control-row">
                <div @click="deleteRowData($index)">-</div>
              </div>
            </template>
          </el-table-column>
          <el-table-column prop="sampleName" label="序号" align="center" width="63" >
            <template slot-scope="{$index}">
              <el-input :value="$index + 1" disabled="true"/>
            </template>
          </el-table-column>
          <el-table-column prop="sampleName" label="样品名称">
            <template slot-scope="{row, $index}">
              <el-input v-model="row.sampleName" placeholder="请输入" :disabled="checkId(row.id)" :ref="'rowInput' + $index" />
            </template>
          </el-table-column>
    // 新增行
    addRowData() {
      this.infoData.itemList.push({
        sampleName: '', // 样品名称
        detectionProject: '', // 检测项目
        standard: '', // 标准
        consequence: '', // 结果
        isQualified: 1, // 是否合格 ( 0: 是,1:否 )
        actionResults: '通过', // 处置措施
        detectionUser: '' // 检测人
      })
      const len = this.infoData.itemList.length - 1
      this.$nextTick(() => {
        this.$refs['rowInput' + len].$refs.input.focus();
      })
    },

elementUI el-input每次输入一个字符后自动失去焦点

input输入框每次输入一次就失去焦点,由于第一次开发后台管理系统

最开始以为是autocomplete的原因,很快发现不是,后来发现是因为v-for绑定的key值原因

v-for="(item,index) in signUpFormProps" :key="item.value+index"

显然每次输入改变了item.value的值导致其进行了渲染,将item.value值去掉后问题就解决了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 详解elementUI中input框无法输入的问题

    最近发现别人项目中在输入密码的时候发现input框无法输入进去 键盘都快敲坏了还是无法输入 通过各种排查.还是无法解决这个问题 后面无意中发现 elementUI中@input事件可以拿到当前的输入的值 问题找到了 视图没有更新的问题 那么怎么解决了 刷新通过this.$forceUpdate() 可以解决这个问题 这样的话这个问题就解决了 原因可能是由于组件嵌套太深(不是很了解为啥出现这个问题有没有大神解释一波 ) 到此这篇关于详解elementUI中input框无法输入的问题的文章就介绍到这

  • elementUI el-input 只能输入正整数验证的操作方法

    字母e在js中属于数字,但是正则匹配 \d 是拦不住字母e 的 正确写法为: onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode || event.which))) || event.which === 8" <el-input type="number" placeholder="请输入" min="1" onKeypress="

  • element ui的el-input-number修改数值失效的问题及解决

    目录 element ui的el-input-number修改数值失效 问题代码 解决办法 分析说明 官方资料 最新说明 el-input-number组件无法修改默认值为空 element ui的el-input-number修改数值失效 问题代码 目的:实现去掉小数位. <el-input-number v-model="cycle" @change="vaidateCycle" :min="1" :max="3600&quo

  • 关于element el-input的autofocus失效的问题及解决

    目录 element el-input的autofocus失效 elementUI el-input每次输入一个字符后自动失去焦点 总结 element el-input的autofocus失效 需求:下拉新增row, 最后一个定位focus <el-table :data="infoData.itemList" fit header-cell-class-name="cellClass" row-class-name="rowClass"

  • 快速解决element的autofocus失效问题

    原因: autofocus是vue中input的原生属性,element也支持这种方法, 但是element中的el-input组件外面还有其他组件, 导致autofocus失效, 只能手动调用focus方法来聚集. 方法: 绑定ref <el-input ref="myNameId" v-model="form.name" /> this.$refs.myNameId.focus(); 动态绑定ref <el-input :ref="

  • js实现Element中input组件的部分功能并封装成组件(实例代码)

    现在实现的有基础用法.可清空.密码框,参考链接:https://element.eleme.cn/#/zh-CN/component/input HTML代码:想要测试哪个组件,直接将对应组件解开注释即可,标红的js和css记得修改成你自己的位置. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>js实现可清空input组件</title> &

  • 基于element UI input组件自行封装“数字区间”输入框组件的问题及解决

    目录 问题描述 实现效果 实现代码 问题描述 在开发时遇到一个数字区间输入框的需求,如下图: 项目使用的是vue,组件库用的是element UI,但是element UI并没有提供数字区间组件,只提供了InputNumber 计数器输入框,如果用两个计数器输入框进行拼接也能满足需求,但是样式调试起来太过于复杂且不够灵活,不能令人满意,并且该数字区间输入框在其它界面也有这种需求,于是就在element input输入框的基础上自行封装了一个数字区间组件使用. 实现效果 实现效果如下: 使用方式如

  • vue项目element UI input框扫码枪扫描过快出现数据丢失问题及解决方案

    目录 项目需求: 解决方案探索 错误代码: 问题就出在 解决方法 完整代码 如下 项目需求: 输入框要掉两个接口,根据第一个验证接口返回的code,弹不同的框,点击弹框确认再掉第二个接口 根据客户现场反应,扫描枪快速扫描会出现 料号前几位字符丢失 不完整的问题.于是开始了测试之路. 解决方案探索 1.首先考虑 ,可能是因为扫描过快,服务端接口还没返回过来,输入框就已经清空了值 导致条码有丢失字符的现象,所以我这边做了一个缓存,将输入框的值存到一个数组中去,定时上传到接口. [x]2.考虑到可能是

  • React事件节流效果失效的原因及解决

    今天做react项目中,给一个 input onKeyDown 事件做节流,出现了节流效果失效. 问题代码: render() { return ( <div className="search-bar"> <input className="search-input" type="text" placeholder="请输入要搜索的用户名(英文)" onKeyDown={this.throttle(this

  • 关于动态生成dom绑定事件失效的原因及解决方法

    之前做项目都是直接用jquery的bind绑定事件,不过当时都不是动态生成dom元素,而是已经页面中原本存在的dom元素进行事件绑定,最近在测试给动态生成的dom绑定事件的时候发现事件失效,于是就测试了一下: 1. 事件失效的原因: (1)bind事件绑定只对dom中存在的元素有效,对于我们后来动态增加的元素是监测不到,所以绑定不了 (2)同样,当你使用var aa = document.getElementsByTagName("动态生成的元素");来获取动态生成的元素的时候也是获取

  • listView的item中有checkbox,导致setOnItemClick失效的原因及解决办法

     一:item的根布局设置 Android:clickable="true",之后导致item点击事件失效,对根布局设置android:descendantFocusability="blocksDescendants",以及对checkbox设置android:focusable="false"都不会起作用,所以item根布局不要设置android:clickable="true" 二:item根布局设置android:de

  • js input输入百分号保存数据库失败的解决方法

    解决办法如下: 1.用ASCII码替换百分号和与符号 var remark = $("#remark").val(); remark.replaceAll("ASCII69","%").replaceAll("ASCII70","&"); //展示时需要对原先替换的进行还原展示 remark.replaceAll("%","ASCII69").replaceA

  • Angularjs中date过滤器失效的问题及解决方法

    在开发中遇到date过滤器失效的问题,在其他页面date过滤器没有问题,但是在这个页面出现了问题,后来发现是因为{{now | date : 'yyyy-MM-dd HH:mm:ss'}} now必须是时间戳格式的,后面的过滤器才会生效.而我从后端传过来的时间数据是字符串所以过滤器无法生效 解决方法:在后端处理要传的数据,将里面的时间转为时间戳即可(下面贴我百度到的) /** * 时间转时间戳 */ public static String dateToStamp(String s) throw

随机推荐