|
5 | 5 | * |
6 | 6 | * @website http://formvalidator.net/ |
7 | 7 | * @license Dual licensed under the MIT or GPL Version 2 licenses |
8 | | -* @version 2.2.beta.62 |
| 8 | +* @version 2.2.beta.65 |
9 | 9 | */ |
10 | 10 | (function($) { |
11 | 11 |
|
12 | 12 | 'use strict'; |
13 | 13 |
|
14 | 14 | var $window = $(window), |
| 15 | + _getInputParentContainer = function($elem) { |
| 16 | + var $parent = $elem.parent(); |
| 17 | + if( !$parent.hasClass('form-group') ) { |
| 18 | + var $formGroup = $parent.closest('.form-group'); |
| 19 | + if( $formGroup.length ) { |
| 20 | + return $formGroup.eq(0); |
| 21 | + } |
| 22 | + } |
| 23 | + return $parent; |
| 24 | + }, |
15 | 25 | _applyErrorStyle = function($elem, conf) { |
16 | 26 | $elem |
17 | 27 | .addClass(conf.errorElementClass) |
18 | 28 | .removeClass('valid'); |
19 | 29 |
|
20 | | - var $parent = $elem.parent(); |
21 | | - if($parent.hasClass("input-group")) |
22 | | - $parent = $parent.parent(); |
23 | | - |
24 | | - $parent |
25 | | - .addClass(conf.inputParentClassOnError) |
| 30 | + _getInputParentContainer($elem) |
| 31 | + .addClass(conf.inputParentClassOnError) |
26 | 32 | .removeClass(conf.inputParentClassOnSuccess); |
27 | 33 |
|
28 | 34 | if(conf.borderColorOnError !== '') { |
|
31 | 37 | }, |
32 | 38 | _removeErrorStyle = function($elem, conf) { |
33 | 39 | $elem.each(function() { |
34 | | - var $this = $(this), |
35 | | - $parent = $this.parent(); |
36 | | - |
37 | | - if($parent.hasClass("input-group")) |
38 | | - $parent = $parent.parent(); |
| 40 | + var $this = $(this); |
39 | 41 |
|
40 | 42 | _setInlineErrorMessage($this, '', conf, conf.errorMessagePosition); |
41 | 43 |
|
|
44 | 46 | .removeClass(conf.errorElementClass) |
45 | 47 | .css('border-color', ''); |
46 | 48 |
|
47 | | - $parent |
| 49 | + _getInputParentContainer($this) |
48 | 50 | .removeClass(conf.inputParentClassOnError) |
49 | | - .removeClass(conf.inputParentClassOnSuccess) |
| 51 | + .removeClass(conf.inputParentClassOnSuccess) |
50 | 52 | .find('.'+conf.errorMessageClass) // remove inline span holding error message |
51 | 53 | .remove(); |
52 | 54 | }); |
|
78 | 80 | } |
79 | 81 | } |
80 | 82 | else { |
81 | | - var $parent = $input.parent(); |
82 | | - if($parent.hasClass("input-group")) $parent = $parent.parent(); |
83 | | - var $mess = $parent.find('.'+conf.errorMessageClass+'.help-block'); |
84 | | - if( $mess.length == 0 ) { |
85 | | - $mess = $('<span></span>').addClass('help-block').addClass(conf.errorMessageClass); |
86 | | - $mess.appendTo($parent); |
87 | | - } |
88 | | - $mess.html(mess); |
| 83 | + |
| 84 | + var $parent = _getInputParentContainer($input), |
| 85 | + $mess = $parent.find('.'+conf.errorMessageClass+'.help-block'); |
| 86 | + |
| 87 | + if( $mess.length == 0 ) { |
| 88 | + $mess = $('<span></span>').addClass('help-block').addClass(conf.errorMessageClass); |
| 89 | + $mess.appendTo($parent); |
| 90 | + } |
| 91 | + $mess.html(mess); |
89 | 92 | } |
90 | 93 | }, |
91 | 94 | _getInlineErrorElement = function($input, conf) { |
|
249 | 252 | ); |
250 | 253 |
|
251 | 254 | if(validation === true) { |
252 | | - $elem |
253 | | - .addClass('valid') |
254 | | - .parent() |
255 | | - .addClass(conf.inputParentClassOnSuccess); |
256 | | - |
| 255 | + $elem.addClass('valid'); |
| 256 | + _getInputParentContainer($elem).addClass(conf.inputParentClassOnSuccess); |
257 | 257 | } else if(validation !== null) { |
258 | 258 |
|
259 | 259 | _applyErrorStyle($elem, conf); |
|
397 | 397 | } else { |
398 | 398 | $elem |
399 | 399 | .valAttr('current-error', false) |
400 | | - .addClass('valid') |
401 | | - .parent() |
402 | | - .addClass('has-success'); |
| 400 | + .addClass('valid'); |
| 401 | + |
| 402 | + _getInputParentContainer($elem).addClass(conf.inputParentClassOnSuccess); |
403 | 403 | } |
404 | 404 | } |
405 | 405 | } |
|
0 commit comments