Knockout 3.0 Testing
by rwisch45
HTML
<script src="//cdnjs.cloudflare.com/ajax/libs/knockout/3.0.0/knockout-min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/knockout.mapping/2.4.1/knockout.mapping.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/knockout-validation/1.0.2/knockout.validation.min.js"></script>
Username: <input type="text" data-bind="value: data().username" />
Password: <input type="text" data-bind="value: data().password" />
<button type="button" data-bind="click: data().login">Login</login>
JavaScript
function DataViewModel() {
var self = this;
self.username = ko.observable().extend({ required: {message:"User name is required!" }});
self.password = ko.observable().extend({ required: {message:"Password is required!" }});
self.login = function () {
debugger;
if (self.dataerrors().length > 0) {
self.errors.showAllMessages();
return false;
}
alert('submitted!');
};
self.dataerrors = ko.validation.group(self);
}
function PageViewModel(){
var self=this;
self.contentheader = ko.observable("Login");
self.usernamelabel = ko.observable("User Name");
self.passwordlabel = ko.observable("Password");
}
function ViewModel()
{
var self=this;
self.data= ko.observable(new DataViewModel());
self.page= new PageViewModel();
}
ko.validation.init();
ko.applyBindings(new ViewModel());