垃圾站 网站优化 关于element el-input的autofocus失效的问题及解决

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

这篇文章主要介绍了关于element el-input的autofocus失效的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。

element el-input的autofocus失效

关于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每次输入一个字符后自动失去焦点

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

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

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

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

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

上一篇
下一篇
联系我们

联系我们

返回顶部