With Twitter Bootstrap the validation classes, e.g. has-error
or has-warning
need to be put on the wrapping form-group
element in order to style the input element and it's label. But Knockout-Validation adds the class to the input element.
<div class="form-group has-error"> <label class="control-label">Input with error</label> <input type="text" class="form-control"> </div>
Is it possible to configure Knockout-Validation in a way that it adds the classes to the div
and not the input
?
The answer by thebringking doesn't get you all the way there. You'll also need to specify the errorMessageClass
and decorateInputElement
options.
ko.validation.init({ errorElementClass: 'has-error', errorMessageClass: 'help-block', decorateInputElement: true }); var viewModel = ko.validatedObservable({ name: ko.observable().extend({ required: true }), email: ko.observable().extend({ required: true, email: true }), submit: function() { if (!this.isValid()) { this.errors.showAllMessages(); } else { alert('good job'); } } }); ko.applyBindings(viewModel);
<link href="http://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.0.2/css/bootstrap.min.css" rel="stylesheet" /> <div class="container"> <form class="form-horizontal"> <div class="form-group" data-bind="validationElement: name"> <label class="control-label col-xs-2" for="name">Name</label> <div class="col-xs-10"> <input id="name" class="form-control" type="text" data-bind="textInput: name" /> </div> </div> <div class="form-group" data-bind="validationElement: email"> <label class="control-label col-xs-2" for="email">Email</label> <div class="col-xs-10"> <input id="email" class="form-control" type="text" data-bind="textInput: email" /> </div> </div> <div class="form-group"> <div class="col-xs-offset-2 col-xs-10"> <button type="submit" class="btn btn-primary" data-bind="click: submit">Submit</button> </div> </div> </form> </div> <script src="http://cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-min.js"></script> <script src="http://cdnjs.cloudflare.com/ajax/libs/knockout-validation/2.0.3/knockout.validation.min.js"></script>
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