|
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