Skip to content

Commit 1e6fcf8

Browse files
Anurudra Shuklaclaude
andcommitted
FORMS-25983: fix handleMinMaxValidation — only clear invalid when our own error is active
Avoids clobbering required/pattern errors set by other validators: instead of unconditionally setting field.invalid = false, check that the errorMessage on the field is the one we set before clearing it. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 2e98d8a commit 1e6fcf8

1 file changed

Lines changed: 16 additions & 9 deletions

File tree

  • ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/af-commons/v1/clientlibs/editor/utils

ui.af.apps/src/main/content/jcr_root/apps/core/fd/components/af-commons/v1/clientlibs/editor/utils/utils.js

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -344,17 +344,24 @@
344344
function validate() {
345345
var minVal = minField.value, maxVal = maxField.value;
346346
var invalid = !!(minVal && maxVal && compare(minVal, maxVal));
347-
// Direct property mutation avoids dispatching change events.
348-
// Using jQuery.trigger() would re-enter this listener via native DOM
349-
// event propagation, causing infinite recursion.
350-
minField.invalid = invalid;
351-
maxField.invalid = invalid;
347+
var minErrMsg = Granite.I18n.getMessage(minMsg);
348+
var maxErrMsg = Granite.I18n.getMessage(maxMsg);
352349
if (invalid) {
353-
minField.errorMessage = Granite.I18n.getMessage(minMsg);
354-
maxField.errorMessage = Granite.I18n.getMessage(maxMsg);
350+
minField.invalid = true;
351+
maxField.invalid = true;
352+
minField.errorMessage = minErrMsg;
353+
maxField.errorMessage = maxErrMsg;
355354
} else {
356-
minField.errorMessage = "";
357-
maxField.errorMessage = "";
355+
// Only clear invalid if this listener set it — avoids clobbering
356+
// required/pattern errors that another validator placed on the field.
357+
if (minField.errorMessage === minErrMsg) {
358+
minField.invalid = false;
359+
minField.errorMessage = "";
360+
}
361+
if (maxField.errorMessage === maxErrMsg) {
362+
maxField.invalid = false;
363+
maxField.errorMessage = "";
364+
}
358365
}
359366
}
360367
validate();

0 commit comments

Comments
 (0)