import { AbstractControl } from '@angular/forms';
export function crossFieldValidator(fieldName1: string, fieldName2: string) {
return (control: AbstractControl) => {
const field1 = control.get(fieldName1);
const field2 = control.get(fieldName2);
if (field1 && field2 && field1.value === field2.value) {
return { crossField: true }; // 返回错误信息
}
return null; // 返回null表示验证通过
};
}
import { Validators } from '@angular/forms';
import { crossFieldValidator } from './cross-field-validator';
const formGroup = this.fb.group({
firstName: ['', Validators.required],
lastName: ['', Validators.required]
}, { validator: crossFieldValidator('firstName', 'lastName') }); //应用交叉验证器
First Name和Last Name必须不同