Skip to content

Commit 491b07a

Browse files
authored
feat(form): optional limit the displayed error messages per field
Added an optional setting errorLimit (default 0 = unlimited). When set to an integer value, only that given number of possible rule errors per field are displayed
1 parent 1e3f606 commit 491b07a

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/definitions/behaviors/form.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1331,7 +1331,8 @@
13311331
fieldValid = true,
13321332
fieldErrors = [],
13331333
isDisabled = $field.filter(':not(:disabled)').length === 0,
1334-
validationMessage = $field[0].validationMessage
1334+
validationMessage = $field[0].validationMessage,
1335+
errorLimit
13351336
;
13361337
if (!field.identifier) {
13371338
module.debug('Using field name as identifier', identifier);
@@ -1354,8 +1355,9 @@
13541355
} else if (field.depends && module.is.empty($dependsField)) {
13551356
module.debug('Field depends on another value that is not present or empty. Skipping', $dependsField);
13561357
} else if (field.rules !== undefined) {
1358+
errorLimit = field.errorLimit || settings.errorLimit;
13571359
$.each(field.rules, function (index, rule) {
1358-
if (module.has.field(identifier)) {
1360+
if (module.has.field(identifier) && (!errorLimit || fieldErrors.length < errorLimit)) {
13591361
var invalidFields = module.validate.rule(field, rule, true) || [];
13601362
if (invalidFields.length > 0) {
13611363
module.debug('Field is invalid', identifier, rule.type);
@@ -1607,6 +1609,7 @@
16071609
preventLeaving: false,
16081610
errorFocus: true,
16091611
dateHandling: 'date', // 'date', 'input', 'formatter'
1612+
errorLimit: 0,
16101613

16111614
onValid: function () {},
16121615
onInvalid: function () {},

0 commit comments

Comments
 (0)