Добавить класс CSS с проверкой нокаута
Я хочу добавить класс CSS в элемент select
в моем представлении, моя модель представления имеет свойство, которое я расширил с помощью функции "Нокаут-валидация":
self.selectedRootCause = ko.observable().extend({
required: true
});
Тогда мой select
выглядит так:
<form data-bind="submit: closeComplaint" method="post">
<select data-bind="options: rootCauses,
optionsText: 'RootCauseText',
value: selectedRootCause,
optionsCaption: 'Choose..',
validationOptions: { errorElementClass:
'input-validation-error' }">
</select>
<input type="submit" value="Close Complaint" />
</form>
Моя функция closeComplaint
выглядит так:
self.closeComplaint = function () {
if (self.errors().length == 0) {
$.ajax({
url: '@Url.Action("CloseComplaint")',
data: new DetailsComplaintAdmin(self.currentComplaint(),
self.selectedRootCause().RootCauseId
),
success: function (data) {
console.log(data);
}
});
}
}
Просто для завершения, вот моя функция self.errors()
:
self.errors = ko.validation.group(self);
Проблема заключается в том, что класс input-validation-error
не добавляется к моему вводу select
при отправке моей формы? Любые идеи?
Ответы
Ответ 1
Оформить заказ ссылка
Сказано, что вам нужно установить decorateElement
в true
для применения CSS
классы для ввода тегов.
Поэтому, когда я применяю этот параметр во всем мире, он работает:
ko.validation.configure({
decorateElement : true
});
Ознакомьтесь с этим jsfiddle демо
Примечание. В более поздних версиях библиотеки проверки нокаута параметр конфигурации decorateElement
был переименован в decorateInputElement
(подробнее)