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

 返回目录

posted @ 2014-12-19 09:38  诺唯  阅读(301)  评论(0编辑  收藏  举报