请让我知道,如果有一个不同的方式来做这与v日期选择器。我只想让用户能够选择年和月,然后日期选择器菜单应该关闭。
这是我的html作为一个例子,但我不介意使用不同的代码,只要它仍然使用v-date-picker。
<v-menu v-model='monthMenu'
:close-on-content-click='false'
:nudge-right='40'
transition='scale-transition'
offset-y
min-width='290px'>
<template v-slot:activator='{ on, attrs }'>
<v-text-field v-model='txtMonth'
label='Month'
prepend-icon='mdi-calendar'
readonly
v-bind='attrs'
v-on='on'
></v-text-field>
</template>
<v-date-picker v-model='month'
@change='datePicked'
color='primary'
scrollable
></v-date-picker>
</v-menu>
ts,datePicked方法有我试过但没有成功的方法
export default Vue.extend({
data() {
return {
monthMenu: false,
month: new Date(new Date().getFullYear(), new Date().getMonth()).toISOString()
.substr(0, 10),
};
},
computed: {
txtMonth(): string {
const [year, month, day] = this.month.split('-');
return `${year}/${month}/${day}`;
},
},
methods: {
datePicked(log: any) {
/* eslint-disable */
console.log('here2');
// const el = document.getElementsByClassName('v-date-picker-table--month') as unknown as HTMLElement;
const acc = document.getElementsByClassName('v-date-picker-table--month');
let i;
for (i = 0; i < acc.length; i++) {
acc[i].addEventListener("click",function() {
console.log('here');
// this.monthMenu = false
});
}
},
},
});
2条答案
按热度按时间deyfvvtc1#
在这个需求上花了几个小时之后,我就能够实现它了。你可以通过观察
month
模型值来关闭打开的日期选择器模态。另外,为<v-date-picker>
元素分配type
属性,其值为month
。现场演示**:**
hs1ihplo2#
根据wimanicesir的评论
我添加了
type='month'
并删除了datePicked方法。