Skip to content

Commit f48cb73

Browse files
committed
Update jquery.form-validator.js
Fixed UI issue with bootstrap input-groups
1 parent 1759414 commit f48cb73

File tree

1 file changed

+44
-32
lines changed

1 file changed

+44
-32
lines changed

form-validator/jquery.form-validator.js

Lines changed: 44 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -57,27 +57,30 @@
5757
help = $element.attr(attrName);
5858

5959
if(help) {
60+
var $parent = $element.parent();
61+
var $help = $element.parent().find('.'+className);
62+
// Twitter bs
63+
if ($parent.hasClass('input-group')){
64+
$parent = $parent.parent();
65+
$help = $parent.find('.'+className);
66+
}
67+
68+
if($help.length == 0) {
69+
$help = $('<span />')
70+
.addClass(className)
71+
.addClass('help-block') // twitter bs
72+
.text(help)
73+
.hide();
74+
}
75+
6076
$element
6177
.addClass('has-help-txt')
6278
.bind('focus.validation', function() {
63-
var $help = $element.parent().find('.'+className);
64-
if($help.length == 0) {
65-
$help = $('<span />')
66-
.addClass(className)
67-
.addClass('help-block') // twitter bs
68-
.text(help)
69-
.hide();
70-
71-
$element.after($help);
72-
73-
}
79+
$parent.append($help);
7480
$help.fadeIn();
7581
})
7682
.bind('blur.validation', function() {
77-
$(this)
78-
.parent()
79-
.find('.'+className)
80-
.fadeOut('slow');
83+
$help.fadeOut('slow');
8184
});
8285
}
8386
});
@@ -114,17 +117,24 @@
114117
$form = $element.closest("form"),
115118

116119
validationRule = $element.attr(config.validationRuleAttribute);
117-
120+
121+
var $parent = $element.parent();
122+
// Twitter bs
123+
if ($parent.hasClass('input-group')){
124+
var $parent = $parent.parent();
125+
}
126+
118127
// Remove possible error style applied by previous validation
119128
$element
120129
.removeClass(config.errorElementClass)
121-
.css('border-color', '')
122-
.parent()
123-
.find('.'+config.errorMessageClass).remove();
130+
.css('border-color', '');
131+
$parent
132+
.find('.'+config.errorMessageClass).remove();
124133

125134
// Twitter bs
126135
$form.find('.has-error').removeClass('has-error');
127-
$element.removeClass('valid').parent().removeClass('has-success');
136+
$element.removeClass('valid');
137+
$parent.removeClass('has-success');
128138

129139
// if element has custom err msg container, clear it
130140
if( elementErrMsgObj != null) {
@@ -137,28 +147,30 @@
137147

138148
if(validation === true) {
139149
$element
140-
.addClass('valid')
141-
.parent()
142-
.addClass('has-success'); // twitter bs
150+
.addClass('valid');
151+
152+
$parent
153+
.addClass('has-success'); // twitter bs
143154
} else if(validation === null) {
144155
$element
145-
.removeClass('valid')
146-
.parent()
147-
.removeClass('has-error')
148-
.removeClass('has-success');
156+
.removeClass('valid');
157+
158+
$parent
159+
.removeClass('has-error')
160+
.removeClass('has-success'); // twitter bs
149161
} else {
150162
$element
151163
.addClass(config.errorElementClass)
152-
.removeClass('valid')
153-
.parent()
154-
.addClass('has-error')
155-
.removeClass('has-success'); // twitter bs
164+
.removeClass('valid');
165+
166+
$parent
167+
.addClass('has-error')
168+
.removeClass('has-success'); // twitter bs
156169

157170
// if element has custom err msg container, use it
158171
if( elementErrMsgObj != null) {
159172
elementErrMsgObj.innerHTML = validation;
160173
} else { // use regular span append
161-
var $parent = $element.parent();
162174
$parent.append('<span class="'+config.errorMessageClass+' help-block">'+validation+'</span>');
163175
$parent.addClass('has-error'); // twitter bs
164176
}

0 commit comments

Comments
 (0)