2 回答
![?](http://img1.sycdn.imooc.com/54584eff000195a302200220-100-100.jpg)
TA贡献1802条经验 获得超4个赞
因为 vuetify 没有你想要的选项,你必须直接控制它。
一个input标签里面存在autocomplete组件。直接在此input标签上指定焦点事件。
尝试这个。
// template
<v-autocomplete
ref="autocomplete"
label="Autocomplete"
:items="components"
hint="need to open menu on focus, just like click"
persistent-hint
></v-autocomplete>
export default {
mounted () {
let autocompleteInput = this.$refs.autocomplete.$refs.input
autocompleteInput.addEventListener('focus', this.onFocus, true)
},
methods: {
onFocus (e) {
this.$refs.autocomplete.isMenuActive = true // open item list
}
}
}
pen - https://codepen.io/kdydesign/pen/rNNadXN?editors=1111
![?](http://img1.sycdn.imooc.com/5458662500019a7c02200220-100-100.jpg)
TA贡献1865条经验 获得超7个赞
您可以简单地使用 Vue.js 的focus()和activateMenu(),而不是挖掘底层的 DOM
<template>
<v-row>
<v-col cols="12" md="4">
<v-text-field label="Text Field" @keydown.tab="focus" />
</v-col>
<v-col cols="12" md="6">
<v-autocomplete
ref="aut"
label="Autocomplete"
:items="components"
hint="need to open menu on focus, just like click"
persistent-hint
></v-autocomplete>
</v-col>
</v-row>
</template>
<script>
export default {
layout: "center-six",
data() {
return {
components: ["A", "B", "C", "D"],
};
},
methods: {
focus() {
this.$refs["aut"].focus();
this.$refs["aut"].activateMenu();
},
},
};
</script>
我还创建了一个简单的 codePen VueJs Menu Activator
添加回答
举报