function ViewModel() { var self = this; self.Email = ko.observable().extend({ required: true, email: true }); self.Password = ko.observable().extend({ required: true, pattern: /^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,16}$/ }); self.Password2 = ko.observable().extend({ required: true, equal: self.Password }); self.Name = ko.observable().extend({ required: true, minLength: 2, maxLength: 30 }); self.Register = function () { self.errors = ko.validation.group(self); if (self.isValid()) { alert('data sent'); } else { self.errors.showAllMessages(); } }; } ko.validation.configure(); ko.applyBindingsWithValidation(new ViewModel());
<div>Registration Form</div> <div>Email: <input type="text" data-bind="value: Email" /> </div> <div>Password: <input type="text" data-bind="value: Password" /> </div> <div>Confirm Your Password: <input type="text" data-bind="value: Password2" /> </div> <div>Name: <input type="text" data-bind="value: Name" /> </div> <div> <input type="button" value="Register" data-bind="click: Register" /> </div>