我封装了一个表单组件,其中有一个文本框。
父组件通过 $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(); }); } }
哪位朋友知道该怎么解决这个问题吗?谢谢了。
蓝山帝景
相关分类