Javascript 使用formcontrol验证md日期选择器
我是angular material 2的新手,尝试验证angular官方网站中的出生日期(DOB)表单字段 因此,在输入错误示例.html中,我添加了如下表单字段Javascript 使用formcontrol验证md日期选择器,javascript,angular,angular-material2,Javascript,Angular,Angular Material2,我是angular material 2的新手,尝试验证angular官方网站中的出生日期(DOB)表单字段 因此,在输入错误示例.html中,我添加了如下表单字段 <md-form-field class="example-full-width"> <input mdInput [mdDatepicker]="picker" placeholder="Choose a date" [formControl]="dobFormControl" onkeypress=
<md-form-field class="example-full-width">
<input mdInput [mdDatepicker]="picker" placeholder="Choose a date" [formControl]="dobFormControl" onkeypress='return (event.charCode >= 48 && event.charCode <= 57) || event.charCode == 47' maxlength="10">
<md-datepicker-toggle mdSuffix [for]="picker"></md-datepicker-toggle>
<md-datepicker #picker></md-datepicker>
<md-error *ngIf="dobFormControl.hasError('required') || dobFormControl.hasError('pattern')">
Please enter a valid Date
</md-error>
</md-form-field>
这是上面的示例,但在这里我无法选择日期或看不到任何错误消息。要使FormControl与正则表达式一起工作,您必须使用
null来实例化FormControl,而不是“”空字符串:
dobFormControl = new FormControl(null, [
Validators.required,
Validators.pattern(DOB_REGEX)
]);
您现在正在使用的plunker问题是datePicker生成的是一个Date
对象,而不是字符串。您不应该需要一个DOB_REGEX,因为只有有效日期是可选的,相反,您只需要将日期导入MM/DD/YYYY
。查看此问题以获取有关格式化日期选择器项的示例:
dobFormControl = new FormControl(null, [
Validators.required,
Validators.pattern(DOB_REGEX)
]);