【发布时间】:2018-06-05 12:58:17
【问题描述】:
我正在构建一个 Angular 5 表单。我需要在我的表格(电子邮件或电话)上提供联系信息。需要电子邮件地址或电话号码,但不能同时填写。我将如何为这种情况创建自定义验证器?从docs 看来,验证器只负责一个控件,而我的验证器需要了解多个控件才能检查它们的所有值。
ngOnInit() {
this.form = this.formBuilder.group({
'name': [null, [Validators.required]],
'email': [null, []], // A user can provide email OR phone, but
'phone': [null, []], // both are not required. How would you do this?
});
}
【问题讨论】:
-
您将为每个控件使用相同的自定义验证器,但您将使用对每个控件的引用并在使用其中一个或另一个时返回 true。这是一个很好的例子:stackoverflow.com/questions/43487413/… 使用相同的想法来验证密码。尽管如此,还是会检查两个表单控件以创建组验证器。
-
尚未完全正常工作,请尝试增强此功能:stackblitz.com/edit/angular-9effym?file=app%2Fapp.component.ts
标签: angular typescript angular-forms