首页 > 代码库 > 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 自定义验证 二选一输入验证、重复验证
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。