angular - 如何在 Angular 8 中进行嵌套自定义验证
问题描述
我想检查两个不同字段 或条件之间的验证。假设我有两个字段年龄和出生日期。我只想检查一个需要年龄或出生日期的字段。
我正在使用 Angular 8。我的表单嵌套了添加更多功能。
解决方案
您可以编写自定义验证并检查您的流程。
this.userFormGroup= this.formBuilder.group({
birth_date: [''],
age : [''],
}, {validator: this.customValidation});
customValidation(formGroup): any {
const birthField = formGroup.controls['birth_date'].value;
const ageField = formGroup.controls['age '].value;
if (birthField && ageField) return null;
if (birthField) return { ageRequired: true };
if (ageField) return { birthRequired: true };
}
}
<div *ngIf="!userFormGroup.valid">
<p *ngIf="userFormGroup.hasError('ageRequired')">The age is required!</p>
<p *ngIf="userFormGroup.hasError('birthRequired')">The birth date is required!</p>
</div>
推荐阅读
- java - 如何在循环中创建多个对象以唯一地记住每个设备
- mysql - 如何从左表返回行,其中右表的条件在没有子查询的所有行上为真
- c# - 如何过滤二维列表?
- amazon-web-services - 如何在 Amazon S3 浏览器上查看直接链接?
- java - @FindBy Selenium 如何找到 ::before
- python - 控制回归中的变量(Python)
- pandas - 删除重复点
- ansible - Ansible - 如何在播放期间重新生成主机 ssh_host_keys 而不会丢失连接
- c#-3.0 - 在c#中获取屏幕上文本的x和y坐标
- javascript - 为什么我只能在 for 循环内部成功找到
- 或标签下
- 使用 JavaScript 中的 getElementsByClassName 方法?
- 或标签下