ksenofobius
@ksenofobius
Люблю долбить по клавишам

Как сделать маску с валидацией для даты в Angular2?

Используя плагин text-mask сделал следующую маску: [/\d/, /\d/, '.', /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/],
Однако таким образом я могу ввести например 99.99.2010. Есть ли модуль который позволяет автоматически преобразовать в таким случае дату к максимальному числу? Автоматически проверяя сколько чисел в конкретном месяце и выбирая максимальное, чтобы получилось 12.31.2010? Видел подобное в DRF визуализации поля date. Возможно есть datepicker с таким функционалом?
  • Вопрос задан
  • 1432 просмотра
Решения вопроса 1
@assets
Back-end developer
Делал такое в Material data picker https://material.angular.io/components/datepicker

в компоненте
import {
    DateAdapter, MAT_DATE_FORMATS, MAT_DIALOG_DATA, MatDateFormats, MatDialog,
    MatDialogRef
} from '@angular/material';

export const MOMENT_DATE_FORMATS: MatDateFormats = {
    parse: {
        dateInput: 'DD.MM.YYYY',
    },
    display: {
        dateInput: 'DD.MM.YYYY',
        monthYearLabel: 'MMMM Y',
        dateA11yLabel: 'LL',
        monthYearA11yLabel: 'MMMM Y'
    }
};


Инпут
<mat-form-field class="px-20" fxFill>
            <input
                    [(ngModel)]="children.date_birth" [ngModelOptions]="{standalone: true}"
                    matInput [matDatepicker]="date_birth"
                    (focus)="date_birth.open()"
                    (click)="date_birth.open()"
                   placeholder="Date birth">
            <mat-datepicker-toggle matSuffix [for]="date_birth"></mat-datepicker-toggle>
            <mat-datepicker #date_birth></mat-datepicker>
        </mat-form-field>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы