Thank you to Signify for making this module possible.
This module provides a number of reusable composable validators (including AJAX validation) for use both in the CMS and in frontend forms.
Make sure you check out the extensions documentation at a minimum - some of these should be applied in almost all projects using this module.
If your project has any automated client-side tests, or you are implementing a validator to be compatible with this module, please make sure you read the client side tests documentation.
Install via composer:
composer require guysartorelli/silverstripe-composable-validatorsThe AjaxCompositeValidator adds a submit handler to your form. This doesn't always interact well with other submit handlers, and can result in either front-end validation being skipped or the form not submitting the way you expect it to, depending on which submit handler gets the event first. For best results, don't add additional submit handlers to the form.
If you're using the AjaxCompositeValidator on a form that uses undefinedoffset/silverstripe-nocaptcha, you should disable form submission handling for the NocaptchaField in that form (see instructions in the nocaptcha docs).
AjaxCompositeValidator
Subclass ofCompositeValidatorthat provides AJAX validation. Resolves an issue with losing data, faster turn-around for fixing validation problems, and provides a way to use the same validation for 'client-side' validation of frontend forms.WarningFieldsValidator
Displays a warning if some field(s) doesn't have a value. Useful for alerting users about data that is technically valid but may not provide the results they expectDependentRequiredFieldsValidator
UsesSearchFilters to define fields as required conditionally, based on the values of other fields (e.g. only required ifOtherFieldhas a value greater than 25).RequiredBlocksValidator
Require a specific elemental block(s) to exist in theElementalArea, with optional minimum and maximum numbers of blocks and optional positional validation.ConstraintsValidator
Validate values againstsymfony/validationconstraints. This is super powerful - definitely check it out.
BaseValidator
Includes methods useful for getting the actualFormFieldand its label.FieldHasValueValidator
Subclass ofBaseValidator. Useful for validators that require logic to check if a field has any value or not.
ValidatesMultipleFields
Useful for validators that can be fed an array of field names to be validated.ValidatesMultipleFieldsWithConfig
LikeValidatesMultipleFieldsbut requires a configuration array for each field to be validated.