MVVM架构~knockoutjs系列之从Knockout.Validation.js源码中学习它的用法
说在前
有时,我们在使用一个插件时,在网上即找不到它的相关API,这时,我们会很抓狂的,与其抓狂,还不如踏下心来,分析一下它的源码,事实上,对于JS这种开发语言来说,它开发的插件的使用方法都在它的源码里,只要你踏下心去看,一切就都有了!
Knockout.Validation.js是为Knockout插件服务的,它可以为Knockout对象进行验证,就像你使用MVC模型验证 一样,而这种绑定的验证方式对于开发人员来说是很容易接受的,也是一种趋势,它在验证过程中,会将出现异常的点记录下来,然后在
某个时候将它抛出来,这个抛出的时刻通常是对象失去焦点时(blur)。
总结Knockout.Validation.js几个常用的东西
为空验证
self.CategoryId = ko.observable().extend({
required: true
});
最大最小值验证
self.price = ko.observable().extend({
required: { params: true, message: "请输入价格" },
min: { params: 1, message: "请输入大于1的整数" },
max: 100
});
长度验证
self.name = ko.observable().extend({
minLength: 2,
maxLength: { params: 30, message: "名称最大长度为30个字符" },
required: {
params: true,
message: "请输入名称",
}
});
电话验证
self.phone = ko.observable().extend({
phoneUS: {
params: true,
message: "电话不合法",
}
});
邮箱验证
self.Email = ko.observable().extend({
required: {
params: true,
message: "请填写Email"
},
email: {
params: true,
message: "Email格式不正确"
}
});
数字验证
self.age = ko.observable().extend({
number: {
params: true,
message: "必须是数字",
}
});
相等验证
self.PayPassword = ko.observable().extend({
required: {
params: true,
message: "请填写支付密码"
},
equal:{
params:"zzl",
message:"支付密码错误"
}
事实上,Knockout.Validation.js还有包括range,date,digit,notEqual等验证,都大同小意,我就不一一说了。
Knockout.Validation.js源码
View Code