我有一个简单的表单,在使用v-show加载页面时会隐藏。我希望在显示之后关注输入。我有一个按钮来调用一个显示表单的方法,并使用以下代码将焦点设置为输入:
this.newQuestion = true; //(Form whit v-show:newQuestion)
this.$refs.questionInput.focus();
问题是表单显示正确,但是第一次按下按钮时输入没有聚焦,如果我在表单处于页面工作状态时第二次按下它。我想知道是否有办法做到这一点,谢谢。
答案 0 :(得分:10)
之前我遇到过类似的问题,我使用Vue的focus
方法强制更新(在您的情况下为nextTick
),这是在您将一些数据更改为等待DOM更新。:
this.$nextTick(() => {
this.$refs.questionInput.focus();
})
答案 1 :(得分:0)
试试这个:
var me = this;
Vue.nextTick(function() {
me.$refs.questionInput.focus();
});