Rumah > Soal Jawab > teks badan
Sila beritahu saya jika ada cara lain untuk melakukan ini menggunakan v-date-picker. Saya hanya mahu pengguna boleh memilih tahun dan bulan dan kemudian menu pemilih tarikh harus ditutup.
Ini adalah html saya sebagai contoh, tetapi saya tidak kisah menggunakan kod yang berbeza asalkan ia masih menggunakan 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, kaedah datePicked mempunyai apa yang saya cuba tetapi tidak berkesan
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].addEventLis tener("click",function() { console.log('here'); // this.monthMenu = false }); } }, }, });
P粉4587250402023-11-11 11:54:20
Selepas menghabiskan beberapa jam untuk keperluan ini, saya dapat melaksanakannya. Anda boleh mematikan mod pemilih tarikh terbuka dengan memerhati nilai model bulan. Juga, untuk atribut
元素分配值为 month
的 type
.
Demo Langsung:
new Vue({ el: '#app', vuetify: new Vuetify(), data () { return { monthMenu: false, txtMonth: '', month: '' } }, watch: { monthMenu (val) { val && setTimeout(() => (this.$refs.picker.activePicker = 'YEAR')) }, month (val) { this.monthMenu = false; } }, methods: { onInput(dateStr) { const month = dateStr.split('-')[1]; const year = dateStr.split('-')[0]; this.txtMonth = `${month}, ${year}`; } } })
sssccc ssscccSelected: {{ txtMonth }}