Функция, позволяющая убедиться, что пользователь выбрал хотя бы один критерий выбора
identityRevealedValidator = (validator: ValidatorFn) => (
group: FormGroup,
): ValidationErrors | null => {
const identityRevealed = group && group.controls && Object.keys(group.controls)
.some(k => !validator(group.controls[k]));
return identityRevealed ? null : {
identityRevealedValidator: true,
};
};
Использование функции:
{ updateOn: 'submit', validator: this.identityRevealedValidator }
Использование внутри формы:
<form [formGroup]="form">
<div class="form-row">
<div class="col-md-12 text-right mt-3">
<button type="submit" class="btn btn-primary" [disabled]="!form.valid">Search</button>
<div *ngIf="form.errors?.identityRevealed && (form.touched || form.dirty)" class="cross-validation-error-message alert alert-danger">
PLease select one Field
</div>
</div>
</div>
</form>