Skip to content

Commit f59d4d9

Browse files
committed
merge conflict fixed...
2 parents 0dbfc6c + 7da2f2f commit f59d4d9

File tree

1 file changed

+40
-27
lines changed

1 file changed

+40
-27
lines changed

form-validator/jquery.form-validator.js

Lines changed: 40 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@
198198
* @return {jQuery}
199199
*/
200200
$.fn.validateInputOnBlur = function(language, conf, attachKeyupEvent, eventType) {
201+
201202
$.formUtils.eventType = eventType;
202203

203204
if( (this.valAttr('suggestion-nr') || this.valAttr('postpone') || this.hasClass('hasDatepicker')) && !window.postponedValidation ) {
@@ -274,7 +275,7 @@
274275
};
275276

276277
/**
277-
* Function that validate all inputs in given element
278+
* Function that validates all inputs in active form
278279
*
279280
* @param {Object} [language]
280281
* @param {Object} [conf]
@@ -316,6 +317,9 @@
316317
}
317318
},
318319

320+
/** HoldsInputs already validated, to prevent recheck of mulitple checkboxes & radios */
321+
checkedInputs = [],
322+
319323
/** Error messages for this validation */
320324
errorMessages = [],
321325

@@ -349,30 +353,38 @@
349353
$form.find('input,textarea,select').filter(':not([type="submit"],[type="button"])').each(function() {
350354
var $elem = $(this);
351355
var elementType = $elem.attr('type');
352-
if (!ignoreInput($elem.attr('name'), elementType)) {
353-
354-
var validation = $.formUtils.validateInput(
355-
$elem,
356-
language,
357-
conf,
358-
$form,
359-
'submit'
360-
);
361-
362-
// Run element validation callback
363-
if( typeof conf.onElementValidate == 'function' ) {
364-
conf.onElementValidate((validation === true), $elem, $form, validation);
365-
}
366-
367-
if(validation !== true) {
368-
addErrorMessage(validation, $elem);
369-
} else {
370-
$elem
371-
.valAttr('current-error', false)
372-
.addClass('valid')
373-
.parent()
374-
.addClass('has-success');
375-
}
356+
var elementName = $elem.attr('name');
357+
if (!ignoreInput(elementName, elementType)) {
358+
359+
// do not recheck multiple elements with same name, i.e. checkboxes, radios
360+
if ($.inArray(elementName, checkedInputs) < 0 ) {
361+
checkedInputs.push(elementName);
362+
363+
var validation = $.formUtils.validateInput(
364+
$elem,
365+
language,
366+
conf,
367+
$form,
368+
'submit'
369+
);
370+
371+
// Run element validation callback
372+
if( typeof conf.onElementValidate == 'function' ) {
373+
conf.onElementValidate((validation === true), $elem, $form, validation);
374+
}
375+
376+
if(validation !== true) {
377+
addErrorMessage(validation, $elem);
378+
} else {
379+
$elem
380+
.valAttr('current-error', false)
381+
.addClass('valid')
382+
.parent()
383+
.addClass('has-success');
384+
}
385+
386+
}
387+
376388
}
377389

378390
});
@@ -853,12 +865,13 @@
853865
var validator = $.formUtils.validators[rule];
854866

855867
if( validator && typeof validator['validatorFunction'] == 'function' ) {
868+
856869
// special change of element for checkbox_group rule
857870
if ( rule == 'validate_checkbox_group' ) {
858-
// set element to first in group, so error msg is set only once
871+
// set element to first in group, so error msg attr doesn't need to be set on all elements in group
859872
$elem = $("[name='"+$elem.attr('name')+"']:eq(0)");
860873
}
861-
874+
862875
var isValid = null;
863876
if( eventContext != 'keyup' || validator.validateOnKeyUp ) {
864877
isValid = validator.validatorFunction(value, $elem, conf, language, $form);

0 commit comments

Comments
 (0)