Skip to content

Commit 4d1710d

Browse files
committed
victorjonsson#368 trigger events for each subValidation
1 parent 70ccdf8 commit 4d1710d

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

src/modules/security.js

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,7 @@
446446
numRequiredLowercaseChars = $input.valAttr('require-lc-letter') || '0',
447447
numRequiredSpecialChars = $input.valAttr('require-special-char') || '0',
448448
numRequiredNumericChars = $input.valAttr('require-numeral') || '0',
449+
numRequiredCharsTotal = $input.valAttr('require-length') || '0',
449450
subValidators = {
450451
'uc-letter': {
451452
pattern: '^(?=(?:.*[A-Z]){'+numRequiredUppercaseChars+',}).+',
@@ -466,26 +467,40 @@
466467
pattern: '^(?=(?:.*\\d){'+numRequiredNumericChars+',}).+',
467468
numRequired: numRequiredNumericChars,
468469
dialogEnd: $.formUtils.LANG.passwordComplexityNumericCharsInfo
470+
},
471+
'length': {
472+
callback: function(val) {
473+
return val.length > numRequiredCharsTotal;
474+
},
475+
numRequired: numRequiredCharsTotal,
476+
dialogEnd: 'Lorem te ipsum'
469477
}
470478
},
471479
errorMessage = '';
472480

473481
$.each(subValidators, function(name, subValidator) {
474482
var numRequired = parseInt(subValidator.numRequired, 10);
475483
if (numRequired) {
476-
var regexp = new RegExp(subValidator.pattern);
477-
if (!regexp.test(value)) {
484+
var regexp = new RegExp(subValidator.pattern),
485+
valid = false;
486+
487+
if (subValidator.callback) {
488+
valid = subValidator.callback(value);
489+
} else {
490+
valid = regexp.test(value);
491+
}
492+
493+
if (!valid) {
478494
if (errorMessage === '') {
479495
errorMessage = language.passwordComplexityStart;
480496
}
481497
errorMessage += language.passwordComplexitySeparator + numRequired + subValidator.dialogEnd;
482-
$input.trigger('complexityValidation', [false, name]);
498+
$input.trigger('complexityRequirementValidation', [false, name]);
483499
} else {
484-
$input.trigger('complexityValidation', [true, name]);
500+
$input.trigger('complexityRequirementValidation', [true, name]);
485501
}
486502
}
487503
});
488-
489504
if (errorMessage) {
490505
this.errorMessage = errorMessage + language.passwordComplexityEnd;
491506
return false;
@@ -496,7 +511,7 @@
496511
errorMessage : '',
497512
errorMessageKey: ''
498513
});
499-
514+
500515
/*
501516
* Google reCaptcha 2
502517
*/

0 commit comments

Comments
 (0)