jquery validate: добавление эффекта постепенного исчезновения в сообщения об ошибках - PullRequest
0 голосов
/ 11 сентября 2010

Я хотел бы добавить эффект постепенного появления / исчезновения к сообщениям об ошибках, отображаемым при проверке jquery.Какой способ сделать это?Могу ли я использовать div и на них и работать с ними отдельно?Плагин включает этот эффект?

Я использую этот код для размещения сообщений об ошибках (он мне нужен для правильного размещения):

$("#commentForm2").validate({


        errorElement: "div",

        errorPlacement: function(error, element) {
            offset = element.offset();
            error.insertBefore(element)
            error.addClass('message');  // add a class to the wrapper
            error.css('position', 'absolute');
            error.css('left', offset.left + element.outerWidth());
            error.css('top', offset.top);
        }

    });

1 Ответ

1 голос
/ 24 января 2014

Я понимаю, что это очень старый вопрос, но я нигде не мог найти этот ответ.Это было решение, которое я в итоге использовал: http://jsfiddle.net/MkARD/

Идея состояла в том, чтобы переписать функции, которые обрабатывают ошибки отображения и скрытия, чтобы использовать SlideDown и SlideOut вместо Show and Hide.Это также может быть применено к FadeIn и FadeOut.Перезапись этих функций, похоже, уже поддерживается в коде, но не документирована.

Кроме того, я решил очистить свои ошибки, когда ввод сфокусирован.Если вы хотите, чтобы ваши ошибки сбрасывались в другом событии, вам нужно будет найти, какая функция полагается, и вместо этого внести в нее изменения.

Надеюсь, это кому-нибудь поможет!Это функции, которые я переписал:

    onfocusin: function( element, event ) {
        this.lastActive = element;

        // hide error label and remove error class on focus if enabled
        if ( this.settings.focusCleanup && !this.blockFocusCleanup ) {
            if ( this.settings.unhighlight ) {
                this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass );
            }
            this.addWrapper(this.errorsFor(element)).slideUp();
        }
    },
    showErrors: function() {
        var i, elements;
        for ( i = 0; this.errorList[i]; i++ ) {
            var error = this.errorList[i];
            if ( this.settings.highlight ) {
                this.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass );
            }
            this.showLabel( error.element, error.message );
        }
        if ( this.errorList.length ) {
            this.toShow = this.toShow.add( this.containers );
        }
        if ( this.settings.success ) {
            for ( i = 0; this.successList[i]; i++ ) {
                this.showLabel( this.successList[i] );
            }
        }
        if ( this.settings.unhighlight ) {
            for ( i = 0, elements = this.validElements(); elements[i]; i++ ) {
                this.settings.unhighlight.call( this, elements[i], this.settings.errorClass, this.settings.validClass );
            }
        }
        this.toHide = this.toHide.not( this.toShow );
        this.hideErrors();
        this.addWrapper( this.toShow ).slideDown();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...