我试图写一个函数执行时,日期选择器得到焦点,但我不知道如何。
这是我的页面代码:
<div class="md-layout-item md-small-size-100 md-size-22">
<md-datepicker v-model="birthDate" :md-open-on-focus="false" ref="birthDateEl">
<label>Birth date</label>
</md-datepicker>
</div>
我得到了一个工作代码,但我认为这不是更好的解决方案:
mounted(){
this.$refs.birthDateEl.$refs.input.$el.onfocus = function() {
this.onBirthDateFocus("some param");
};
},
一个好的解决方案应该放在"焦点"上。
您应该能够在<md-datepicker>
上收听focusin
事件,因为它会在元素树中冒泡(不像focus
事件)。您还应该使用.native
修饰符,这在侦听自定义组件上的本机事件时是必需的。
在事件处理函数中,您可能应该检查事件是否在表示日期拾取器的确切输入上触发。
模板:
<md-datepicker @focusin.native="onBirthDateFocus($event)" ...>
脚本:
methods: {
onBirthDateFocus(event) {
if (event.target.id === 'datePickerInput') {
/*...*/
}
}
}