jQuery.validator.setDefaults({ errorElement: 'div', errorClass: 'invalid-feedback', errorPlacement: function(error, element) { if(element.parent('.input-group').length) { error.insertAfter(element.parent()); } else { error.insertAfter(element); } }, invalidHandler: function(e, validator) { noty({ text: (validator.numberOfInvalids() == 1) ? trans.js_form_error.replace('#', validator.numberOfInvalids()) : trans.js_form_errors.replace('#', validator.numberOfInvalids()), type: 'error', dismissQueue: true, layout: 'topRight', theme: 'defaultTheme', timeout: 3500, }); }, highlight: function (element, errorClass, validClass) { if($(element).data('target-highlight')) $('#'+$(element).data('target-highlight')).addClass('is-invalid'); else $(element).addClass('is-invalid'); }, unhighlight: function (element, errorClass, validClass) { if($(element).data('target-highlight')) $('#'+$(element).data('target-highlight')).removeClass('is-invalid'); else $(element).removeClass('is-invalid'); } });