#javascript #vue.js #validation #vuetify.js #datetimepicker
#javascript #vue.js #проверка #vuetify.js #datetimepicker
Вопрос:
Я использую два v-time-pickers в моем проекте vuetify. Я хочу проверить свои тайм-сборщики, которые невозможно будет выбрать во втором тайм-сборщике раньше, чем в первом тайм-сборщике.
Например, когда при первом выборе времени пользователь выберет время: 9 утра, при втором выборе невозможно будет выбрать часы до 9 утра, а включенными будут часы только с 10 утра.
https://vuetifyjs.com/en/components/time-pickers/#dialog-and-menu
Код:
pickers.js
<v-menu
ref="menu"
v-model="menu2"
:close-on-content-click="false"
:nudge-right="40"
:return-value.sync="time"
lazy
transition="scale-transition"
offset-y
full-width
max-width="290px"
min-width="290px"
>
<template v-slot:activator="{ on }">
<v-text-field
v-model="time"
label="Picker in menu"
prepend-icon="access_time"
readonly
v-on="on"
></v-text-field>
</template>
<v-time-picker
v-if="menu2"
v-model="time"
full-width
@click:minute="$refs.menu.save(time)"
></v-time-picker>
</v-menu>
</v-flex>
<v-spacer></v-spacer>
<v-flex xs11 sm5>
<v-dialog
ref="dialog"
v-model="modal2"
:return-value.sync="time"
persistent
lazy
full-width
width="290px"
>
<template v-slot:activator="{ on }">
<v-text-field
v-model="time"
label="Picker in dialog"
prepend-icon="access_time"
readonly
v-on="on"
></v-text-field>
</template>
<v-time-picker
v-if="modal2"
v-model="time"
full-width
>
<v-spacer></v-spacer>
<v-btn flat color="primary" @click="modal2 = false">Cancel</v-btn>
<v-btn flat color="primary" @click="$refs.dialog.save(time)">OK</v-btn>
</v-time-picker>
</v-dialog>
script.js
<script>
export default {
data () {
return {
time: null,
menu2: false,
modal2: false
}
}
}
</script>
content_copy
Ответ №1:
Вы можете использовать реквизиты разрешенных часов и минут из компонента v-time-picker:
<v-time-picker
v-if="modal2"
v-model="time"
:allowed-hours="allowedHours"
:allowed-minutes="allowedMinutes"
full-width
>
и настройте свою логику в своем скрипте :
methods: {
allowedHours: v => v % 2,
allowedMinutes: v => v >= 10 amp;amp; v <= 50
},
Комментарии:
1. спасибо @jcoleau за ответ, не могли бы вы рассказать мне, как связать эти правила проверки между двумя таймерами?
2. Оба средства выбора времени
v-model
указывают на одни и те же переменные (время), предназначено ли это?3. Нет, это не так. Я хочу иметь возможность выбирать разное время для сборщиков и создавать правила проверки между сборщиками
4. Затем укажите второму средству выбора вторую переменную
time2
, например, а затем вы можете ссылаться на первую переменную в своей логикеallowedHours: v => v >= this.time 1
примерно так