Angular2文本掩码插件(用于出生日期的createAutoCorrectedDatePipe)

时间:2017-08-10 04:56:34

标签: angular angular2-forms angular2-directives

我使用了文字掩码和文字掩码插件,我用它作为出生日期我们进入时没有检查有效日期,它也接受未来的日期..请任何人帮助我... 我的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">

2 个答案:

答案 0 :(得分:1)

蒙版仅用于编写蒙版值。要测试值是否有效,您应该使用验证器:https://angular.io/guide/form-validation

答案 1 :(得分:1)

您可以通过反应式表单验证来实现

在ts文件中:

 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>

您也可以编写自己的验证

以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;

}