我正在为角材料日期选择器建立一个验证,该验证是非必填字段。
当需要该字段时,一切都会顺利进行,因为我使用了必需的验证器。但是当我尝试使用自定义验证进行验证时,问题就来了。
我的自定义验证器仅在键入数字时有效,因此我不知道这是否与角形材质日期选择器的内部运行有关。就像事件无法正常进行一样。
示例(我无法发布图片):
如果我在字段上输入09348023948309,则验证效果很好,显示错误并显示红色。
如果我输入abcnssda,则验证不起作用,实际上,它不会触发验证器。
HTML
<mat-form-field>
<input
matInput
[matDatepicker]="picker2"
class="inputDate"
name="fechaEjecucion"
placeholder="Fecha Fin"
formControlName="fechaEjecucion"
/>
<mat-datepicker-toggle matSuffix [for]="picker2"></mat-datepicker-toggle>
<mat-datepicker #picker2></mat-datepicker>
</mat-form-field>
验证者:
dateValidator(control: AbstractControl): { [key: string]: boolean } | null {
if (control.value !== undefined && !Date.parse(control.value)) {
return { fecha: true };
}
return null;
}
FormGroup:
generaIntervencion() {
return (new FormGroup({
idInstalacion: new FormControl(this.instalacionSeleccionada, [Validators.required]),
fechaCreacion: new FormControl(null, [Validators.required]),
fechaEjecucion: new FormControl(null, [this.dateValidator]),
descripcion: new FormControl('', [
Validators.required,
Validators.maxLength(20000),
Validators.pattern('[a-z "¿?/%€(),:;. 0-9 A-ZñÑáéíóúÁÉÍÓÚs]*'),
removeSpaces
]),
tareasIntervencion: new FormArray([])
}));
}
如果用户输入字母,数字等,我想验证该字段。
谢谢