关注位于 vuejs 中另一个组件内的输入?

Shi*_*nwi 4 html javascript onfocus vue.js vuex

我希望能够在输入某些键时专注于输入字段。我想关注的输入存在于 autocomplete-vue 中。这就是我所说的:

<autocomplete v-shortkey="['alt', 's']"
              @shortkey.native="theAction()"
              ref="autocompleteInput" 
></autocomplete>
Run Code Online (Sandbox Code Playgroud)

我想让我专注于输入的 theAction 方法如下所示:

theAction () {
      this.$refs.autocompleteInput.$el.focus()
    }
Run Code Online (Sandbox Code Playgroud)

这集中于整个部分,这不是我想要的。输入存在于 theAction 关注的内容中的 2 个 div 中。从更好的角度来看,这就是this.$refs.autocompleteInput.$el返回的结果:

<div>
  <div data-position="below" class="autocomplete"> 
     <input role="combobox" class="autocomplete-input"> 
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

关于如何通过类自动完成输入专注于输入有什么想法吗?任何建议都有帮助!

Phi*_*hil 5

autocomplete在组件中添加一个 ref<input>并添加一个方法来聚焦它

<input role="combobox" class="autocomplete-input" ref="input"> 
Run Code Online (Sandbox Code Playgroud)
methods: {
  focus() {
    this.$refs.input.focus()
  }
}
Run Code Online (Sandbox Code Playgroud)

然后您可以像这样从父组件调用它

this.$refs.autocompleteInput.focus()
Run Code Online (Sandbox Code Playgroud)