У меня есть поле ввода даты в компоненте Vue / Vuex. Chrome позволяет пользователю выбрать день месяца и затем нажимать вверх или вниз. Например, если изначально дата 30.09.2009, пользователь может выбрать 30 и щелкнуть вверх, чтобы создать недействительный 31.09.2009. У меня есть поле даты как v-модель и некоторая проверка в сеттере. (См. Ниже) Однако, когда я нажимаю до 31, установщик обнаруживает недопустимую дату (пустую строку) и отображает мое сообщение об ошибке, но на самом деле не меняет дату на 31. Он действительно меняет число при втором щелчке и по-прежнемуобнаруживает это как недействительную дату. Если я уберу валидацию, клик сразу же переместится на 31, как и ожидалось. Есть предложения?
<input class="form-control input-focus date-text" id="EndDate" name="EndDate"
placeholder="Select date of service" type="date" v-model="endDate"
data-val="true" data-val-date="The field must be a date.">
.
.
.
computed: {
endDate: {
get(): string {
return this.$store.getters['filterStore/endDate'];
},
set(newDate: string) {
if (newDate !== '') {
this.$store.dispatch('filterStore/setInvalidDate', { value: false });
this.$store.dispatch('filterStore/setFilterEndDate', { date: newDate });
} else {
this.$store.dispatch('filterStore/setInvalidDate', { value: true });
}
},
},