input 自动获取焦点

问题描述:项目中一个需求,写了一个span显示,一个input隐藏,鼠标点击span后,span隐藏,input显示并获取焦点。

方法一:

// 注册一个全局自定义指令
Vue.directive('focus', {
  // When the bound element is inserted into the DOM...
  inserted(el) {
    // Focus the element
    el.querySelector('input').focus();
  },
});

使用用例:
<el-input v-focus></el-input>

方法二:

直接在页面中操作:

1)<el-input ref="input"></el-input>

2)在触发的方法中执行 this.$refs.input.focus();

/ ************** v-for ***************/

3)<div v-for="(task, index) in tasks">
    <el-input :ref="'select' + index"></el-input>
   </div>

注意:若input是在v-for中渲染得到的,
直接执行 this.$refs.input.focus();可能会报错,
可以在nextTick方法中执行,nextTick里面的代码会在DOM更新后执行。如下:

4)this.$nextTick(() => {
      this.$refs[`input${index}`][0].focus();
   });
posted @ 2018-12-25 17:03  lynnekanuo  阅读(1830)  评论(0编辑  收藏  举报