我封装了一个表单组件,其中有一个文本框。父组件通过 $broadcast('form-show') 事件,控制表单组件的显示隐藏。表单组件中有一个 <textarea> ,请问大家,如何在表单组件显示时,这个文本框自动获取焦点呢?我已经试过以下两种方法:1、给 <textarea> 添加 autofocus 属性,可是只有表单组件第一次显示时,才能自动获取焦点,隐藏之后再显示就不行了。2、在表单组件中使用events: { 'form-show': function() { this.show = true; this.$els.textInput.focus(); // this.$els.textInput指向<textarea> ,此方法不行
}
}
下面这种:
events: { 'form-show': function() { this.show = true; this.$nextTick(function(){ // 还是不行
this.$els.textInput.focus();
});
}
}哪位朋友知道该怎么解决这个问题吗?谢谢了。
1 回答
蓝山帝景
TA贡献1843条经验 获得超7个赞
嗯?如果我沒看錯的話,結構是
父組件
----表單組件
--------文本框
如果真是這樣的話,你寫得沒錯阿,懷疑是其他因素造成,例如你的 textInput
確定有拿到東西嗎?v-el:textInput
這樣是錯
的v-el:text-input
這樣才是對
的
添加回答
举报
0/150
提交
取消