Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用formcontrol验证md日期选择器_Javascript_Angular_Angular Material2 - Fatal编程技术网

Javascript 使用formcontrol验证md日期选择器

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=

我是angular material 2的新手,尝试验证angular官方网站中的出生日期(DOB)表单字段

因此,在输入错误示例.html中,我添加了如下表单字段

  <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)
    ]);