Надстройки текстовой маски Angular2 (createAutoCorrectedDatePipe используется для даты рождения)

Я использовал текстовую маску и аддон текстовой маски, и я использовал его для даты рождения, он не проверяет действительную дату, когда мы вводим, и также принимает будущие даты. Пожалуйста, помогите мне. Мой файл ts,

 import createAutoCorrectedDatePipe from 'text-mask-addons/dist/createAutoCorrectedDatePipe';

export class HomeComponent {
   autoCorrectedDatePipe: any = createAutoCorrectedDatePipe('mm/dd/yyyy');
   mask: any = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
}

мой шаблон,

 <input [maxlength]="20" [textMask]="{mask: mask, keepCharPositions: true, pipe: autoCorrectedDatePipe}" [(ngModel)]="myModel" type="text" [formControl]="form.controls['dob']" name="dob" class="form-control">

person Niton    schedule 10.08.2017    source источник


Ответы (2)


Маска предназначена только для записи замаскированного значения. Для проверки допустимости значения следует использовать валидатор: https://angular.io/guide/form-validation

person be4code    schedule 10.08.2017

Вы можете сделать это с помощью реактивной проверки формы

в тс файле:

 this.ocapForm = this.formBuilder.group({
        dob: ['', Validators.required]
    });

в HTML

 <div class="col-md-6 text-left pl-0">
   <input type="text" formControlName="dob" class="form__input--text">
 </div>

Вы также можете написать свою собственную проверку

in ts

withdrawalDate: ['', validateDate]

в функции, которую вы вызвали при проверке

public validateDate(control: FormControl){
    const dob = control.value; // to geth the value of name
    const requiredValidation = Validators.required(control); // you can do inbuild validation here aswell
    if (!!requiredValidation) {  // to check validation
        return requiredValidation; // return the error as you needed
    } else if (dob) {     // making your custom check here
        return { dobError: true };
    }
    return null;

}

person jorence jovin    schedule 14.10.2019