Добавление style="display: block"
через JavaScript - это единственный способ динамически отображать и скрывать элементы во время выполнения.Это не так уж и плохо, как в большинстве встроенных стилей.То же самое происходит, когда вы вызываете $("#myElement").show()
в обычном jQuery.
Редактировать: чтобы узнать, какое поведение вы хотите, я пошел и отредактировал ваш jsBin;если я все сделал правильно, новая версия должна быть здесь .
Стало ясно, что проблема была в том, что поведение this.defaultShowErrors()
заключалось в использовании метода jQuery .show()
при ошибкесписок, который (как обсуждалось выше и в комментариях) в этом случае будет устанавливать встроенный стиль display: block
.Поскольку мы хотим display: inline
, нам нужно изменить showErrors
следующим образом:
showErrors: function (errorMap, errorList) {
this.defaultShowErrors();
$.each(errorList, function (i, error) {
$(error.element).css("display", "inline");
});
}
Таким образом, когда ошибки скрыты, а затем снова показаны, наша пользовательская функция showErrors
сработает.Они будут установлены на display: block
на мгновение к this.defaultShowErrors()
, но затем мы исправим это и установим для них display: inline
.