Conditional Form Validation
Environment
Product | Form for Blazor |
Description
How to apply custom conditional validation, based on user selection?
How to implement conditional required validation for a form field? There are fields that I want to set as required only when another field has a certain value.
How to set dynamic validation for Blazor form fields? I want to update the validation criteria of a TextBox at runtime.
Solution
The TelerikForm supports any validator that is compatible with the Blazor EditForm and EditContext. There are several options to validate form values conditionally:
- Use a third-party validator that allows conditional validation.
- Perform custom validation in the Form's
OnSubmit
event. - Implement remote (server-side) custom validation.
- Use
FormItem
Templates. Subscribe to the change handlers of the field editors to execute custom logic, show notifications, etc. -
Implement a custom conditional
DataAnnotations
attribute. To see inline error messages next to the field editor, return theValidationResult
overload that accepts the invalid field name(s). In this way the form validator will know which field has failed validation.return new ValidationResult(this.FormatErrorMessage(validationContext.DisplayName), new List<string> { validationContext.MemberName });
The Telerik components for Blazor do not perform the actual validation of the model. Validation is managed by the
EditContext
. The role of the Telerik components is to callEditContext
methods, subscribe toEditContext
events, retrieve validation messages, and display them. If a validation scenario does not work as expected, check the behavior in a standard Blazor<EditForm>
to verify if the issue is related to the Telerik components.