显示组件时,组件中的文本框自动获取焦点

我封装了一个表单组件,其中有一个文本框。
父组件通过 $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();
    });
  }
}

哪位朋友知道该怎么解决这个问题吗?谢谢了。


慕桂英4014372
浏览 634回答 1
1回答

蓝山帝景

嗯?如果我沒看錯的話,結構是父組件----表單組件--------文本框如果真是這樣的話,你寫得沒錯阿,懷疑是其他因素造成,例如你的&nbsp;textInput&nbsp;確定有拿到東西嗎?v-el:textInput&nbsp;這樣是錯的v-el:text-input&nbsp;這樣才是對的這邊是按照你代碼模擬的情況
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript