首页 > 代码库 > sencha touch Model validations 自定义验证 二选一输入验证、重复验证

sencha touch Model validations 自定义验证 二选一输入验证、重复验证

项目初始化时执行以下代码

 1             //重写模型,方便进行自定义验证 2             Ext.define("Ext.zh.data.Model", { 3                 override: "Ext.data.Model", 4                 validate: function () { 5                     var errors = Ext.create(‘Ext.data.Errors‘), 6                     validations = this.getValidations().items, 7                     validators = Ext.data.Validations, 8                     length, 9                     validation,10                     field,11                     valid,12                     type,13                     i;14                     if (validations) {15                         length = validations.length;16                         for (i = 0; i < length; i++) {17                             validation = validations[i];18                             field = validation.field || validation.name;19                             type = validation.type;20                             //这里重写了代码,验证时将模型做参数加入21                             //方便进行验证22                             valid = validators[type](validation, this.get(field), this);23                             if (!valid) {24                                 errors.add(Ext.create(‘Ext.data.Error‘, {25                                     field: field,26                                     message: validation.message || validators.getMessage(type)27                                 }));28                             }29                         }30                     }31                     return errors;32                 }33             });34             //自定义验证,这里就多了个formData就可以获取到所有数据,能方便验证35             Ext.apply(Ext.data.validations, {36                 chooseOneMessage: ‘两者之间只能一项有值‘,37                 //两个字段之中只能有一个有值38                 //同时可以通过正则表达式验证39                 chooseOne: function (config, value, formData) {40                     var name = config.forComparison,41                     otherValue =http://www.mamicode.com/ formData.data[name],42                     matcher;43                     if (value && otherValue) {44                         return false;45                     }46                     value = http://www.mamicode.com/value || otherValue;47                     matcher = config.matcher;48                     if (matcher) {49                         return !!(matcher && matcher.test(value));50                     }51                     return true;52                 },53                 //自定义重复验证54                 repeatOneMessage: ‘两次输入不一致‘,55                 repeat: function (config, value, formData) {56                     otherValue =http://www.mamicode.com/ formData.data[config.forComparison];57                     if (value != otherValue) {58                         return false;59                     }60                     return true;61                 }62             });

模型验证用法:

1         field: ‘name‘,2         //二选一验证3         type: ‘chooseOne‘,4         //其他字段5         forComparison: ‘name1‘,6         //同时支持正则表达式7         //重复验证用法类同8         matcher: /(^[0-9]+(.[0-9]{2})?$)/,9         message: ‘请输入name或name1!‘

不知道模型验证怎么用的可以看看我以前的文章

http://www.cnblogs.com/mlzs/p/3341175.html

sencha touch Model validations 自定义验证 二选一输入验证、重复验证