Skip to content

Commit 8990b6d

Browse files
committed
FIX Make AJAX validation work on the front-end again
1 parent 1014fcc commit 8990b6d

File tree

3 files changed

+6
-34
lines changed

3 files changed

+6
-34
lines changed

_config/extensions.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,3 @@ Name: signify-composable-validators-extensions
44
SilverStripe\Forms\Form:
55
extensions:
66
- Signify\ComposableValidators\Extensions\FormExtension
7-
8-
SilverStripe\Admin\LeftAndMain:
9-
extensions:
10-
- Signify\ComposableValidators\Extensions\LeftAndMainAjaxValidationExtension

src/Extensions/LeftAndMainAjaxValidationExtension.php

Lines changed: 0 additions & 30 deletions
This file was deleted.

src/Validators/AjaxCompositeValidator.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use SilverStripe\Control\HTTPRequest;
88
use SilverStripe\Core\ArrayLib;
99
use SilverStripe\Forms\Form;
10+
use SilverStripe\Forms\FormAction;
1011
use SilverStripe\Forms\Validation\CompositeValidator;
1112
use SilverStripe\Forms\Validation\Validator;
1213
use SilverStripe\View\Requirements;
@@ -51,6 +52,11 @@ class AjaxCompositeValidator extends CompositeValidator
5152
public function setForm(Form $form): static
5253
{
5354
if ($this->ajax) {
55+
// We need to add a hidden validation-exempt action to prevent unexpected errors
56+
$form->Actions()->add(
57+
// Name matches the method in FormExtension that gets called to handle ajax validation.
58+
FormAction::create('app_ajaxValidate')->setValidationExempt(true)->setTemplate('HiddenFormAction')
59+
);
5460
Requirements::javascript(
5561
'guysartorelli/silverstripe-composable-validators:client/dist/AjaxCompositeValidator.js',
5662
['defer' => true]

0 commit comments

Comments
 (0)