<el-table-column v-show="itemheader.name == '备注'" v-for="(ite, indd) in itemheader.children" :key="indd" :label="ite.name" min-width="110" align="center" show-overflow-tooltip > <template slot-scope="scope"> <div @click="clickbz()" v-if="ite.name == '监控备注' && !showInput" :style="{ color: scope.row[ind].color ? scope.row[ind].color : 'white', width: '100%', height: '30px', cursor: 'pointer', }" > {{ scope.row[ind].children[indd].value }} </div> <el-input v-if="showInput && ite.name == '监控备注'" size="mini" v-model="scope.row[ind].children[indd].value" @blur=" changeBz( scope.row[ind].children[indd].value, scope.row[1].resId ) " style="width: 90px" ></el-input> <div v-if="ite.name != '监控备注'" :style="{ color: scope.row[ind].color ? scope.row[ind].color : 'white', }" > {{ scope.row[ind].children[indd].value }} </div> </template> </el-table-column> vue 如何在点击 表格内输入框时 input框自动聚焦呢 以下是点击事件 clickbz() { clearInterval(this.timer); this.showInput = true; },
时间: 2024-04-15 10:27:15 浏览: 143
要实现在点击表格内的输入框时自动聚焦,可以使用Vue的`ref`属性和`$refs`来实现。首先,在模板中给`el-input`添加一个`ref`属性,例如`ref="inputRef"`。然后,在点击事件处理程序中,通过`this.$refs.inputRef.$el.focus()`将焦点设置到输入框上。
以下是修改后的代码示例:
```html
<el-table-column
v-show="itemheader.name == '备注'"
v-for="(ite, indd) in itemheader.children"
:key="indd"
:label="ite.name"
min-width="110"
align="center"
show-overflow-tooltip
>
<template slot-scope="scope">
<div
@click="clickbz()"
v-if="ite.name == '监控备注' && !showInput"
:style="{
color: scope.row[ind].color ? scope.row[ind].color : 'white',
width: '100%',
height: '30px',
cursor: 'pointer',
}"
>
{{ scope.row[ind].children[indd].value }}
</div>
<el-input
ref="inputRef"
v-if="showInput && ite.name == '监控备注'"
size="mini"
v-model="scope.row[ind].children[indd].value"
@blur="
changeBz(scope.row[ind].children[indd].value, scope.row[1].resId)
"
style="width: 90px"
></el-input>
<div
v-if="ite.name != '监控备注'"
:style="{
color: scope.row[ind].color ? scope.row[ind].color : 'white',
}"
>
{{ scope.row[ind].children[indd].value }}
</div>
</template>
</el-table-column>
```
```javascript
clickbz() {
clearInterval(this.timer);
this.showInput = true;
this.$nextTick(() => {
this.$refs.inputRef.$el.focus();
});
},
```
在点击事件处理程序中,使用`this.$nextTick()`来确保在更新DOM后设置焦点。然后,使用`this.$refs.inputRef.$el.focus()`将焦点设置到输入框上。这样,当点击表格内的输入框时,输入框将自动聚焦。
阅读全文