How to make select2 work with jquery.validation plugin?

后端 未结 15 591
北荒
北荒 2020-12-01 02:40

I\'m trying to validate select2 field using jquey.validation plugin but nothing happens.

I want to make select required field.

I\'m using this custom validat

15条回答
  •  粉色の甜心
    2020-12-01 03:40

    I solved the problem, the solution is to modify the highlight, unhighlight and above all errorPlacement methods for each instance of validate. However, in order not to modify each file, I put the modifications in the file jquery.validate.js

    highlight: function( element, errorClass, validClass ) {
            if ( element.type === "radio" ) {
                this.findByName( element.name ).addClass( errorClass ).removeClass( validClass );
            } else {
                var elem = $(element);
                if (elem.attr('readonly') == 'readonly') {
                    if (elem.hasClass("input-group-addon")) {
                       $("#" + elem.attr("id")).parent().addClass(errorClass);
                    } else {
                        $( element ).addClass( errorClass ).removeClass( validClass );
                    }
                } else {
                    if (elem.hasClass("select2-hidden-accessible")) {
                       $("#select2-" + elem.attr("id") + "-container").parent().addClass(errorClass);
                    } else {
                        $( element ).addClass( errorClass ).removeClass( validClass );
                    }
                }
            }
        },
        unhighlight: function( element, errorClass, validClass ) {
            if ( element.type === "radio" ) {
                this.findByName( element.name ).removeClass( errorClass ).addClass( validClass );
            } else {
                var elem = $(element);
                if (elem.attr('readonly') == 'readonly') {
                    if (elem.hasClass("input-group-addon")) {
                       $("#" + elem.attr("id")).parent().removeClass(errorClass);
                    } else {
                        $( element ).addClass( errorClass ).removeClass( validClass );
                    }
                } else {
                    if (elem.hasClass("select2-hidden-accessible")) {
                        $("#select2-" + elem.attr("id") + "-container").parent().removeClass(errorClass);
                    } else {
                        $( element ).removeClass( errorClass ).addClass( validClass );
                    }
                }
            }
        },
        errorPlacement: function(error, element) {
            var elem = $(element);
            if (elem.attr('readonly') == 'readonly') {
                element = $("#" + elem.attr("id")).parent();
                error.insertAfter(element);
            } else {
                if (elem.hasClass("select2-hidden-accessible")) {
                    element = $("#select2-" + elem.attr("id") + "-container").parent().parent().parent();
                    error.insertAfter(element);
                } else {
                    error.insertAfter(element);
                }
            }
        }
    

提交回复
热议问题