以下のコーデックスには、日付を含む簡単な入力があります。
<input type="text"
v-model="startDate"
name="StartDate"
v-validate="{ required: false, date_format: 'dd/MM/yyyy', before: maxStartDate }"/>
入力した有効な日付に関係なく、エラーが生成されます。
StartDateは2019-08-01T03:59:59.999Zより前である必要があります。
私も試しました:
また、vee-validateがメッセージングでUKスタイルのロケールを使用していることにも気づきました。たとえば、私は米国にいますが、日付は2019年7月25日のように戻ってきます。日付の比較がどういうわけか歪んでいるのだろうか。
コードペン:https://codepen.io/Kinetiq/pen/XLeEaM
before
バリデータは、あなたはそれがないと思うどのように動作しません。必要なのは、日付を含む別のフィールドへの参照です。startDateフィールドとendDateフィールドを作成している場合、startDateがendDateより前であることを確認する必要があると想像してください。それがこれが行うことです。
使用する必要のあるバリデーターはdate_between
、次のようになります。
<input type="text"
v-model="startDate"
name="StartDate"
v-validate="{ date_format: 'dd/MM/yyyy', date_between:['01/01/1990',maxStartDate] }"/>
そして、maxStartDateの定義方法を次のように変更する必要がありました。
maxStartDate: function() {
return moment()
.startOf('month')
.add(1, 'months')
.endOf('month').format('DD/MM/YYYY');
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加