Ext.define('User', { extend: 'Ext.data.Model', config: { fields: [ {name: 'name', type: 'string'}, {name: 'age', type: 'int'}, {name: 'phone', type: 'string'}, {name: 'gender', type: 'string'}, {name: 'username', type: 'string'}, {name: 'alive', type: 'boolean', defaultValue: true} ], validations: [ {type: 'presence', field: 'age'}, {type: 'length', field: 'name', min: 2}, {type: 'inclusion', field: 'gender', list: ['Male', 'Female']}, {type: 'exclusion', field: 'username', list: ['Admin', 'Operator']}, {type: 'format', field: 'username', matcher: /([a-z]+)[0-9]{2,3}/} ] } }); 在我们运用的框架中,有个公用函数 /** * form 表单验证 * @param modelName[String] model 全限定名 * @param json[Json] data */ validateForm: function(modelName, json) { var me = this; var model = Ext.create(modelName,json), errorMessage='', errors = model.validate(); if (!errors.isValid()) { errors.each(function (err) { errorMessage += err.getMessage() + '<br/>'; var s = Ext.String.format('field[name={0}]',err.getField()); //TODO apply the style class by lyf me.down(s).element.select('input').addCls('red_background'); setTimeout(function(){me.down(s).element.select('input').removeCls('red_background');},2000); }); Ext.Msg.alert('提交的表单有错误!', errorMessage); return true; } return false; } 运用的时候直接在controller中调用就可以了 json = Ext.apply(button.up('formpanel').getValues());// 传递到后台的参数 if(view.validateForm('
modelName
', json)) { return false; }
sencha touch 输入框验证
最新推荐文章于 2021-06-09 23:07:32 发布