sencha touch 输入框验证

来源:互联网 发布:若水软件官网 编辑:程序博客网 时间:2024/05/21 17:56

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;            }
0 0
原创粉丝点击