pawsitiwe / sulu-forms-ajax-validation-bundle
A bundle for Sulu form ajax validation
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Language:Twig
Type:sulu-form-bundle
pkg:composer/pawsitiwe/sulu-forms-ajax-validation-bundle
Requires
- php: ^8.2
- sulu/form-bundle: ^2.0
- symfony/framework-bundle: ^6.0
README
Installation
composer require pawsitiwe/sulu-forms-ajax-validation-bundle
Setup
Service Registration
The extension needs to be registered as symfony service.
services: Pawsitiwe\Controller\ValidationController: arguments: $formBuilder: '@sulu_form.builder' tags: ['controller.service_arguments']
Bundle Registration
return [ Pawsitiwe\SuluFormsAjaxValidationBundle::class => ['all' => true], ]
Route Registration
sulu_frontend_validation: resource: '@SuluFormsAjaxValidationBundle/Resources/config/routes.yaml' prefix: /
Usage
The route /ajax/form/validate returns the form validation as JSON
Twig Integration
Include the AJAX-enabled form in your templates using the provided partial:
{% include '@SuluFormsAjaxValidation/forms/partials/ajax_form.html.twig' with {
form: content.form,
successText: view.form.entity.successText,
errorText: 'Custom error message' # optional
} %}
This partial automatically:
- Uses the custom form theme ajax_form.html.twig
- Displays error and success messages
- Adds type-specific and additional CSS classes for styling
Example Response
{
"message": "",
"valid": false,
"fields": [
{
"id": "dynamic_form1_email",
"valid": false,
"modified": true,
"violation": {
"message": "This value should not be blank."
}
},
{
"id": "dynamic_form1_lastName",
"valid": true,
"modified": false
}
]
}
Notes
- The
formparameter must be a Sulu Form object. successTextis optional; if empty, the default translationajax_form.successwill be used.errorTextis optional; if empty, the default translationajax_form.errorwill be used.