在elementUI官网中,有说明input的自动获取焦点属性,但是第一次有效,第二次再展示input时就失效了:

最后发现原因是使用了v-if渲染输入框的展示和隐藏,但是当第二次再设置isShowSearch时,渲染动作是异步执行的,没有js执行的快,所以导致自动获取焦点失效

解决办法是:

第一种利用setTimeout ,也就是我上面使用的方法
 setTimeout(()=>{
   this.$refs.searchRef.focus();
},0)


第二种:利用 this.$nextTick
this.$nextTick(()=>{
    this.$refs.searchRef.focus();
})

 就可以自动获取焦点了:

 

Logo

前往低代码交流专区

更多推荐