К сожалению, нет прямого способа сделать это, предоставляемого API, потому что он принял (на мой взгляд) плохое решение:
showLabel: function(element, message) {
var label = this.errorsFor( element );
if ( label.length ) {
label.removeClass().addClass( this.settings.errorClass );
//^ right here
}
Это то, что удаляет все ваши классы, и, к сожалению, это также последнее, что запускается в конвейере недопустимых обработчиков. Однако , он вызывается с помощью defaultShowErrors()
, который вы можете назвать сами, переопределив параметр showErrors
, например:
$(function() {
$('form').validate({
showErrors: function(errorMap, errorList) {
this.defaultShowErrors();
$(this.currentForm).find('label[for=text2].error').addClass('errorextra');
}
});
});
Вы можете проверить это здесь .
Другой вариант, если вы поддерживаете только 1019 *, поддерживающий более новые браузеры, это сделать это полностью в CSS:
label[for=text2].error { margin-left: 10px; }