diff --git a/Packages/ohif-core/client/components/base/mixins/form.js b/Packages/ohif-core/client/components/base/mixins/form.js index ab9bfbeb0..77ac0edfb 100644 --- a/Packages/ohif-core/client/components/base/mixins/form.js +++ b/Packages/ohif-core/client/components/base/mixins/form.js @@ -17,6 +17,9 @@ OHIF.mixins.form = new OHIF.Mixin({ // Set the form identifier flag component.isForm = true; + // Set the form validated flag + component.isValidatedAlready = false; + component.validationObserver = new Tracker.Dependency(); // Reset the pathKey @@ -34,6 +37,9 @@ OHIF.mixins.form = new OHIF.Mixin({ // Call the original validation function validateSelf(); + // Change the form validated flag to true + component.isValidatedAlready = true; + // Focus the first error field if some validation failed if (component.schema && component.schema._invalidKeys.length) { instance.$('.state-error :input:first').focus(); diff --git a/Packages/ohif-core/client/components/base/mixins/formItem.js b/Packages/ohif-core/client/components/base/mixins/formItem.js index 88b7c4ae8..41632c4b4 100644 --- a/Packages/ohif-core/client/components/base/mixins/formItem.js +++ b/Packages/ohif-core/client/components/base/mixins/formItem.js @@ -235,8 +235,11 @@ OHIF.mixins.formItem = new OHIF.Mixin({ // Enable reactivity by changing a Tracker.Dependency observer component.changeObserver.changed(); - // Revalidate the component - component.validate(); + const form = component.getForm(); + if (form && form.isValidatedAlready) { + // Revalidate the component if form is already validated + component.validate(); + } } },