【发布时间】:2018-09-19 10:41:46
【问题描述】:
我编写了一个简单的验证器,比较表单组上的两个日期表单控件。
简单检查:maturityDate 必须 > 大于 valueDate,如果不使表单组无效。
下面是表单组的定义:
this.datesForm = this._fb.group(
{
tradeDate: [new Date(), Validators.required],
valueDate: [new Date(), Validators.required],
maturityDate: [new Date(), [Validators.required]],
dayCount: [{value: 0, disabled: true}, Validators.required]
},
{
validator: validateMaturityDate
}
);
这是我的验证器.ts
import { AbstractControl } from '@angular/forms';
export function validateMaturityDate(datesForm: AbstractControl) {
const valueDate: Date = datesForm.get('valueDate').value;
const maturityDate: Date = datesForm.get('maturityDate').value;
if (maturityDate <= valueDate) {
datesForm.setErrors({ 'validMaturity': true });
} else {
datesForm.setErrors({ 'validMaturity': false });
}
return;
}
如果我从日期选择器中选择一个在起息日之前的到期日,我的预期是表单组无效。但事实并非如此,它在两种情况下都有效。我做错了吗?
https://i.stack.imgur.com/KzRJg.png https://i.stack.imgur.com/KEM1v.png
【问题讨论】:
标签: angular reactive customvalidator