Skip to content

Commit e42473b

Browse files
committed
Add onFormieValidateError JS event for client-side error handling
1 parent 788c3e3 commit e42473b

File tree

3 files changed

+15
-1
lines changed

3 files changed

+15
-1
lines changed

src/web/assets/frontend/dist/js/formie.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/web/assets/frontend/src/js/formie-form-base.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,13 @@ export class FormieFormBase {
251251
return this.$form.dispatchEvent(validateEvent);
252252
}
253253

254+
validateError(data = {}) {
255+
this.$form.dispatchEvent(new CustomEvent('onFormieValidateError', {
256+
bubbles: true,
257+
detail: data,
258+
}));
259+
}
260+
254261
afterValidate() {
255262
// Create an event for after validation. This is mostly for third-parties.
256263
const afterValidateEvent = this.eventObject('onAfterFormieValidate', {

src/web/assets/frontend/src/js/formie-form-theme.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,13 @@ export class FormieFormTheme {
266266
this.removeFormAlert();
267267
}
268268

269+
// Raise a client-side event for failed errors. Set a tiny delay to ensure the event fires correctly-timed
270+
if (errors.length) {
271+
setTimeout(() => {
272+
this.form.validateError({ errors });
273+
}, 10);
274+
}
275+
269276
return !errors.length;
270277
}
271278

0 commit comments

Comments
 (0)