|
13 | 13 |
|
14 | 14 | var $window = $(window),
|
15 | 15 | _applyErrorStyle = function($elem, conf) {
|
16 |
| - var $parent = $elem.parent(); |
17 | 16 | $elem
|
18 | 17 | .addClass(conf.errorElementClass)
|
19 | 18 | .removeClass('valid');
|
20 |
| - if($parent.hasClass("input-group")) $parent = $parent.parent(); |
| 19 | + var $parent = $elem.parent(); |
| 20 | + if($parent.hasClass("input-group")) $parent = $parent.parent(); |
21 | 21 |
|
22 |
| - $parent.addClass('has-error') .removeClass('has-success'); //twitter bs |
23 |
| - |
| 22 | + $parent |
| 23 | + .addClass(conf.inputParentClassOnError) |
| 24 | + .removeClass(conf.inputParentClassOnSuccess); |
24 | 25 |
|
25 | 26 | if(conf.borderColorOnError !== '') {
|
26 | 27 | $elem.css('border-color', conf.borderColorOnError);
|
|
29 | 30 | _removeErrorStyle = function($elem, conf) {
|
30 | 31 | $elem.each(function() {
|
31 | 32 | _setInlineErrorMessage($(this), '', conf, conf.errorMessagePosition);
|
32 |
| - var $parent = $(this).parent(); |
33 | 33 |
|
34 |
| - if($parent.hasClass("input-group")) $parent = $parent.parent(); |
35 | 34 | $(this)
|
36 | 35 | .removeClass('valid')
|
37 | 36 | .removeClass(conf.errorElementClass)
|
38 | 37 | .css('border-color', '');
|
| 38 | + |
| 39 | + var $parent = $(this).parent(); |
| 40 | + if($parent.hasClass("input-group")) |
| 41 | + $parent = $parent.parent(); |
| 42 | + |
39 | 43 | $parent
|
40 |
| - .removeClass('has-error') |
41 |
| - .removeClass('has-success') |
42 |
| - .find('.'+conf.errorMessageClass) // remove inline error message |
| 44 | + .removeClass(conf.inputParentClassOnError) |
| 45 | + .removeClass(conf.inputParentClassOnSuccess) |
| 46 | + .find('.'+conf.errorMessageClass) // remove inline span holding error message |
43 | 47 | .remove();
|
44 | 48 | });
|
45 | 49 | },
|
46 | 50 | _setInlineErrorMessage = function($input, mess, conf, $messageContainer) {
|
47 | 51 | var custom = _getInlineErrorElement($input);
|
48 |
| - var $parent = $input.parent(); |
49 |
| - if($parent.hasClass("input-group")) $parent = $parent.parent(); |
| 52 | + |
50 | 53 | if( custom ) {
|
51 | 54 | custom.innerHTML = mess;
|
52 | 55 | }
|
|
71 | 74 | }
|
72 | 75 | }
|
73 | 76 | else {
|
| 77 | + var $parent = $input.parent(); |
| 78 | + if($parent.hasClass("input-group")) $parent = $parent.parent(); |
74 | 79 | var $mess = $parent.find('.'+conf.errorMessageClass+'.help-block');
|
75 | 80 | if( $mess.length == 0 ) {
|
76 | 81 | $mess = $('<span></span>').addClass('help-block').addClass(conf.errorMessageClass);
|
|
236 | 241 | $elem
|
237 | 242 | .addClass('valid')
|
238 | 243 | .parent()
|
239 |
| - .addClass('has-success'); // twitter bs |
| 244 | + .addClass(conf.inputParentClassOnSuccess); |
| 245 | + |
240 | 246 | } else if(validation !== null) {
|
241 | 247 |
|
242 | 248 | _applyErrorStyle($elem, conf);
|
|
351 | 357 |
|
352 | 358 | // Validate element values
|
353 | 359 | $form.find('input,textarea,select').filter(':not([type="submit"],[type="button"])').each(function() {
|
354 |
| - var $elem = $(this); |
355 |
| - var elementType = $elem.attr('type'); |
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 |
| - |
388 |
| - } |
| 360 | + var $elem = $(this), |
| 361 | + elementType = $elem.attr('type'), |
| 362 | + elementName = $elem.attr('name'); |
| 363 | + |
| 364 | + if (!ignoreInput(elementName, elementType) && $.inArray(elementName, checkedInputs) < 0 ) { |
| 365 | + |
| 366 | + checkedInputs.push(elementName); |
| 367 | + var validation = $.formUtils.validateInput( |
| 368 | + $elem, |
| 369 | + language, |
| 370 | + conf, |
| 371 | + $form, |
| 372 | + 'submit' |
| 373 | + ); |
| 374 | + |
| 375 | + // Run element validation callback |
| 376 | + if( typeof conf.onElementValidate == 'function' ) { |
| 377 | + conf.onElementValidate((validation === true), $elem, $form, validation); |
| 378 | + } |
389 | 379 |
|
| 380 | + if(validation !== true) { |
| 381 | + addErrorMessage(validation, $elem); |
| 382 | + } else { |
| 383 | + $elem |
| 384 | + .valAttr('current-error', false) |
| 385 | + .addClass('valid') |
| 386 | + .parent() |
| 387 | + .addClass('has-success'); |
| 388 | + } |
| 389 | + } |
390 | 390 | });
|
391 | 391 |
|
392 | 392 | // Run validation callback
|
|
632 | 632 | scrollToTopOnError : true,
|
633 | 633 | dateFormat : 'yyyy-mm-dd',
|
634 | 634 | addValidClassOnAll : false, // whether or not to apply class="valid" even if the input wasn't validated
|
635 |
| - decimalSeparator : '.' |
| 635 | + decimalSeparator : '.', |
| 636 | + inputParentClassOnError : 'has-error', // twitter-bootstrap default class name |
| 637 | + inputParentClassOnSuccess : 'has-success' // twitter-bootstrap default class name |
636 | 638 | }
|
637 | 639 | },
|
638 | 640 |
|
|
0 commit comments