I want to add a CSS Class to a select element in my view, my view model has a property which I've extended using Knockout-Validation:
self.selectedRootCause = ko.observable().extend({
required: true
});
Then my select is like so:
<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>
My closeComplaint function looks like so:
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);
}
});
}
}
Just for completion, here is my self.errors() function:
self.errors = ko.validation.group(self);
The problem is the class input-validation-error doesn't appear to be added to my select input when I submit my form? Any ideas?
Checkout this link
Its said that you have to set decorateElement to true for applying CSS
classes to input tags.
So when i apply that parameter globally it works :
ko.validation.configure({
decorateElement : true
});
Checkout this jsfiddle demo
Note: In more recent versions of the Knockout Validation library, the decorateElement configuration option has been renamed to decorateInputElement(details)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With