#vue.js #validation #vue-formulate
#vue.js #проверка #vue-сформулировать
Вопрос:
Я использую библиотеку Vue Formulate (которая потрясающая).
Мне нужно, чтобы пользователь мог выбирать дату только с сегодняшнего дня (включительно) и далее.
Я использую значение «после» по умолчанию для проверки, но сегодня (текущая дата) недействительна. Другими словами, проверка запускается при выборе сегодняшней даты, и форма не может быть отправлена.
Каков наилучший способ обойти это?
Ответ №1:
Небольшое обходное решение, присвоив атрибуту after значение даты до сегодняшнего дня:
<template>
<FormulateInput
name="date"
label="Date:"
:validation="
'bail|required|after:' new Date(Date.now() - 24 * 60 * 60 * 1000)
"
:validation-messages="{ after: 'The date has to be today or later' }"
type="date"
/>
</template>
РЕДАКТИРОВАТЬ: на самом деле вы можете сделать это также с помощью вычисляемого свойства, вернув дату до сегодняшнего дня.
Комментарии:
1. Спасибо! Да, я собираюсь использовать вычисляемое свойство.
Ответ №2:
После проверки должна быть определена дата. Вот решение путем вычисления сегодняшнего дня с помощью вычисляемого свойства. Codesandbox
<template>
<FormulateInput
name="date"
label="Date:"
:validation="'bail|required|after:' today"
:validation-messages="{ after: 'The date has to be today or later' }"
type="date"
/>
</template>
<script>
export default {
computed: {
today() {
return new Date().toLocaleDateString();
},
},
};
</script>
Комментарии:
1. Большое спасибо! Я думал, что это будет что-то вроде этого.