6 个回答

1、ref是可以绑定变化值的,

:ref="'input'+row.id"  // 双引号写,不生效
:ref='"input"+row.id'  // 单引号写,生效

2、element的el-input提供了focus方法,只要取到元素就可以调用方法,
所以不必取到孩子元素即原生input元素调用

this.$refs.inputRef.$el.children[0].focus()

3、如果方法不生效,可能是input元素还没有渲染出来,可通过setTimeout等待一下

let _this = this
setTimeout(function () {
  _this.$refs['input' + row.id].focus()
}, 1)
<el-input v-model="input" placeholder="请输入内容" ref="inputRef"></el-input>

mounted(){
    this.$refs.inputRef.focus()
}

<el-input v-model="input" placeholder="请输入内容" ref="inputRef"></el-input>
this.$refs.inputRef.$el.children[0].focus();

<el-input v-model="input" placeholder="请输入内容" @focus="f()"></el-input>
methods:{
    f:function() {
        console.log('focus');
    }
  }
新手上路,请多包涵

<el-input v-model="input" placeholder="请输入内容" ref="inputRef"></el-input>

this.$refs.inputRef.focus();

实测是可以的,mothod都是通过这种方式触发的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏