如何以编程方式聚焦选定无线电的v-radio-group?

时间:2018-12-10 21:52:23

标签: vue.js vuejs2 vuetify.js

如何以编程方式聚焦选定无线电的v-radio-group?

<v-radio-group v-model="radios" :mandatory="false" ref="RadioGroup">
  <v-radio label="Radio 1" value="radio-1"></v-radio>
  <v-radio label="Radio 2" value="radio-2"></v-radio>
</v-radio-group>

我尝试过this.$refs.RadioGroup.focus(),但没有任何反应。 预先谢谢你

2 个答案:

答案 0 :(得分:1)

两件事

  • Vuetify将div和输入添加到DOM,因此您需要稍微深入一下被引用元素的子元素

  • 您可能希望定位单选按钮之一,因为聚焦于组似乎没有效果

这可行,所以可能会给您一个使用的想法

<v-radio-group v-model="radios" :mandatory="false" ref="RadioGroup">
  <v-radio label="Radio 1" value="radio-1" ref="Radio1"></v-radio>
  <v-radio label="Radio 2" value="radio-2" ref="Radio2"></v-radio>
</v-radio-group>
this.$refs.Radio2[0].$el.children[0].children[0].focus()

使用此侦听器进行测试

created() {
  document.addEventListener('focusin', event => {
    console.log('focused', event.target)
  })
},

答案 1 :(得分:0)

尝试使用custom directive。将“ radio-focus”作为指令添加到Vue实例将v-radio-focus指令作为属性添加到您要关注的v-radio元素。有关指令here的更多信息。

 'radio-focus': {
      // directive definition
      inserted: function (el) {
          const $el: HTMLElement = el.children[0].children[0] as HTMLElement
          $el.focus()
        }
      }