Skip to content

Unable to override errorPlacement function using $.validator.setDefaults() #88

Closed
@MikeAlhayek

Description

@MikeAlhayek

I am trying to change the error placement to fit css-bootstrap3

I added the following code before I included jquery.validate.unobtrusive v3.2.9

But my errorPlacement function never gets called. also adding errorClass: "help-block" does not override the jquery.validate.unobtrusive default class-name.

$(function () {
        $.validator.setDefaults({
            errorElement: "span",
            errorClass: "help-block",
            highlight: function (element, errorClass, validClass) {
            	console.log('Also, the param errorClass returns input-validation-error instead of help-block', errorClass, validClass, element);
                var elm = $(element);
                var group = elm.closest('.form-group');
                
                if(group.length == 0) {
                    group = elm.closest('.form-group-custom');
                }

                if(group.length) {
                    group.addClass('has-error');
                }
            },
            unhighlight: function (element, errorClass, validClass) {
                console.log('Also, the param errorClass returns input-validation-error instead of help-block', errorClass, validClass, element);

                var elm = $(element);
                var group = elm.closest('.form-group');
                
                if(group.length == 0) {
                    group = elm.closest('.form-group-custom');
                }

                if(group.length) {
                    group.removeClass('has-error');
                }
            },
            errorPlacement: function (error, element) {

            	console.log('errorPlacement... this never gets called :(', error, element);
                var elm = $(element);

                if (elm.parent('.input-group').length || elm.parent('.input-group-custom').length) {
                    error.insertAfter(elm.parent());
                }
                else if (elm.prop('type') === 'checkbox' || elm.prop('type') === 'radio') {
                    error.appendTo(elm.closest(':not(input, label, .checkbox, .radio)').first());
                } else {
                    error.insertAfter(elm);
                }
            },
            submitHandler: function (form) {
                showLoading();
                form.submit();
            }
        });
    });

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions