Я понимаю, что это очень старый вопрос, но я нигде не мог найти этот ответ.Это было решение, которое я в итоге использовал: 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();
}