Ext vtype

//form验证中vtype的默认支持类型
1.alpha //只能输入字母,无法输入其他(如数字,特殊符号等)
2.alphanum//只能输入字母和数字,无法输入其他
3.email//email验证,要求的格式是"cnblogs@gmail.com"
4.url//url格式验证,

 

{fieldLabel:"不能为空",

                vtype:"email",//email格式验证

                vtypeText:"不是有效的邮箱地址",//错误提示信息,默认值我就不说了

                id:"blanktest",

                anchor:"90%"

               }

自定义vtype:

 

Ext.apply(Ext.form.VTypes, {
daterange: function (val, field) {
var date = field.parseDate(val);

if (!date) {
return;
}
if (field.startDateField && (!this.dateRangeMax || (date.getTime() != this.dateRangeMax.getTime()))) {
var start = Ext.getCmp(field.startDateField);
start.setMaxValue(date);
start.validate();
this.dateRangeMax = date;
}
else if (field.endDateField && (!this.dateRangeMin || (date.getTime() != this.dateRangeMin.getTime()))) {
var end = Ext.getCmp(field.endDateField);
end.setMinValue(date);
end.validate();
this.dateRangeMin = date;
}
return true;
},
daterangeText: "开始日期和结束日期不匹配"
});

 

 

{
id: 'startdate',
xtype: 'datefield',
width: 190,
maxValue: new Date(),
margins: '0 0 0 6',
labelWidth: 60,
fieldLabel: '(跟进)从',
format: 'Y-m-d',
endDateField: 'enddate',
vtype: 'daterange'

}, {
id: 'enddate',
xtype: 'datefield',
width: 150,
maxValue: new Date(),
margins: '0 0 0 6',
labelWidth: 20,
fieldLabel: '至',
format: 'Y-m-d',
startDateField: 'startdate',
vtype: 'daterange'
}

blankText :
{xtype: 'textfield',

fieldLabel: '票据密押',

anchor: '94%',

name:'draftkey',

id:'draftkey', 

allowBlank:false,

blankText :'票据密押不能为空'},

 

常用的vtype:

Ext.apply(Ext.form.VTypes,   

{  

    daterange: function(val, field)   

    {  

        var date = field.parseDate(val);  

      

        // We need to force the picker to update values to recaluate the disabled dates display  

        var dispUpd = function(picker)   

        {  

            var ad = picker.activeDate;  

            picker.activeDate = null;  

            picker.update(ad);  

        };  

      

        if (field.startDateField)   

        {  

            var sd = Ext.getCmp(field.startDateField);  

            sd.maxValue = date;  

            if (sd.menu && sd.menu.picker)   

            {  

                sd.menu.picker.maxDate = date;  

                dispUpd(sd.menu.picker);  

            }  

        }   

        else if (field.endDateField)   

        {  

            var ed = Ext.getCmp(field.endDateField);  

            ed.minValue = date;  

            if (ed.menu && ed.menu.picker)   

            {  

                ed.menu.picker.minDate = date;  

                dispUpd(ed.menu.picker);  

            }  

        }  

        return true;  

    },  

    

  password: function(val, field)   

  {  

        if (field.initialPassField)   

        {  

            var pwd = Ext.getCmp(field.initialPassField);  

            return (val == pwd.getValue());   

        }  

        return true;  

  },  

  passwordText: '两次输入的密码不一致!',  

    

  chinese:function(val,field)  

  {  

        var reg = /^[/u4e00-/u9fa5]+$/i;  

        if(!reg.test(val))  

        {  

            return false;  

        }  

        return true;  

  },  

  chineseText:'请输入中文',  

    

  age:function(val,field)  

  {  

        try  

        {  

            if(parseInt(val) >= 18 && parseInt(val) <= 100)  

                return true;  

            return false;  

        }  

        catch(err)   

        {  

            return false;  

        }  

  },  

  ageText:'年龄输入有误',  

    

  alphanum:function(val,field)  

  {  

        try  

        {  

            if(!//W/.test(val))  

                return true;  

            return false;  

        }  

        catch(e)  

        {  

            return false;  

        }  

  },  

  alphanumText:'请输入英文字母或是数字,其它字符是不允许的.',  

    

  url:function(val,field)  

  {  

        try  

        {  

            if(/^(http|https|ftp):////(([A-Z0-9][A-Z0-9_-]*)(/.[A-Z0-9][A-Z0-9_-]*)+)(:(/d+))?//?/i.test(val))  

                return true;  

            return false;  

        }  

        catch(e)  

        {  

            return false;  

        }  

  },  

  urlText:'请输入有效的URL地址.',  

    

  max:function(val,field)  

  {  

        try  

        {  

            if(parseFloat(val) <= parseFloat(field.max))  

                return true;  

            return false;  

        }  

        catch(e)  

        {  

            return false;  

        }  

  },  

  maxText:'超过最大值',  

    

  min:function(val,field)  

  {  

        try  

        {  

            if(parseFloat(val) >= parseFloat(field.min))  

                return true;  

            return false;  

        }  

        catch(e)  

        {  

            return false;  

        }  

  },  

  minText:'小于最小值',  

        

  datecn:function(val,field)  

  {  

        try  

        {  

            var regex = /^(/d{4})-(/d{2})-(/d{2})$/;  

            if(!regex.test(val)) return false;  

            var d = new Date(val.replace(regex, '$1/$2/$3'));  

            return (parseInt(RegExp.$2, 10) == (1+d.getMonth())) && (parseInt(RegExp.$3, 10) == d.getDate())&&(parseInt(RegExp.$1, 10) == d.getFullYear());  

        }  

        catch(e)  

        {  

            return false;  

        }  

  },  

  datecnText:'请使用这样的日期格式: yyyy-mm-dd. 例如:2008-06-20.',  

    

  integer:function(val,field)  

  {  

        try  

        {  

            if(/^[-+]?[/d]+$/.test(val))  

                return true;  

            return false;  

        }  

        catch(e)  

        {  

            return false;  

        }  

  },  

  integerText:'请输入正确的整数',  

    

  minlength:function(val,field)  

  {  

        try  

        {  

            if(val.length >= parseInt(field.minlen))  

                return true;  

            return false  

        }  

        catch(e)  

        {  

            return false;  

        }  

  },  

  minlengthText:'长度过小',  

    

  maxlength:function(val,field)  

  {  

     try  

     {  

        if(val.length <= parseInt(field.maxlen))  

            return true;  

        return false;  

     }  

     catch(e)  

     {  

        return false;  

     }  

  },  

  maxlengthText:'长度过大',  

    

  ip:function(val,field)  

  {  

        try  

        {  

            if((/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(val)))  

                return true;  

            return false;  

        }  

        catch(e)  

        {  

            return false;  

        }  

  },  

  ipText:'请输入正确的IP地址',  

    

  phone:function(val,field)  

  {  

        try  

        {  

            if(//(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}//.test(val))  

                return true;  

            return false;  

        }  

        catch(e)  

        {  

            return false;  

        }  

  },  

  phoneText:'请输入正确的电话号码,如:0920-29392929',  

    

  mobilephone:function(val,field)  

  {  

        try  

        {  

            if(/(^0?[1][35][0-9]{9}$)/.test(val))  

                return true;  

            return false;  

        }  

        catch(e)  

        {  

            return false;  

        }  

  },  

  mobilephoneText:'请输入正确的手机号码',  

    

  alpha:function(val,field)  

  {  

        try  

        {  

            if( /^[a-zA-Z]+$/.test(val))  

                return true;  

            return false;  

        }  

        catch(e)  

        {  

            return false;  

        }  

  },  

  alphaText:'请输入英文字母'  

});

 

items:[

                {

                    fieldLabel:'非空验证',

                    name:'name',

                    allowBlank: false,

                    blankText:'不能为空'

                },//allowBlank是否为空的验证,blankText提示文本

                {

                    xtype:'textfield',

                    name:'email',

                    fieldLabel:'邮件验证',

                    allowBlank:false,

                    blankText:'邮件不能为空',

                    vtype:'email',

                    vtypeText:'您输入的邮箱地址不合法'

                },//vtype为extjs自动验证的一些属性

                {

                    xtype:'textfield',

                    name:'length',

                    fieldLabel:'验证指定长度',

                    allowBlank:false,

                    blankText:'不能为空',

                    minLength:5,

                    maxLength:10,

                },

                {

                    name:'english',

                    fieldLabel:'全部英文',

                    allowBlank:false,

                    blankText:'不能为空',

                    vtype:'alpha',

                    vtypeText:'请输入英文'        

                },

                {

                    name:'numberAndApl',

                    fieldLabel:'字母与数字',

                    allowBlank:false,

                    blankText:'不能为空',

                    vtype:'alphanum',

                    vtypeText:'只能是数字和字母'    

                },

                {

                    xtype:'textfield',

                    name:'url',

                    fieldLabel:'网址',

                    allowBlank:false,

                    blankText:'不能为空',

                    vtype:'url',//如:http://www.baidu.com

                    vtypeText:'请输入正确的网址格式'    

                },

                {

                    name:'youzheng',

                    fieldLabel:'邮政编码',

                    allowBlank:false,

                    blankText:'不能为空',

                    regex:/^[1-9]{1}(\d){5}$/,    

                    regexText:'请输入正确的邮政编码'

                },

                {

                    xtype:'textfield',

                    name:'chinese',

                    fieldLabel:'汉字',

                    allowBlank:false,

                    blankText:'不能为空',

                    regex:/^[\u4E00-\u9FA5]+$/,

                    regexText:'请输入汉字'

                },

                {

                    xtype:'textfield',

                    name:'telephone',

                    fieldLabel:'手机号码',

                    allowBlank:false,

                    blankText:'不能为空',

                    regex:/^1[\d]{10}$/,

                    regexText:'手机号码必须是1开头的,后面跟10位数字结尾'    

                },

                {

                    xtype:'textfield',

                    name:'phone',

                    fieldLabel:'电话号码',

                    allowBlank:false,

                    blankText:'电话号码不能空',

                    regex:/^0(\d{2}|\d{3})\-(\d{7}|\d{8})$/,

                    regexText:'电话号码必须如:0xx-1234344'

                },

                {

                    xtype:'textfield',

                    name:'ip',

                    fieldLabel:'ip地址',

                    allowBlank:false,

                    blankText:'不能为空',

                    regex:/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,

                    regexText:'请输入Ip地址'    

                },

                {

                    xtype:'textfield',

                    name:'id',

                    fieldLabel:'身份证',

                    allowBlank:false,

                    blankText:'不能为空',

                    regex:/(^\d{15}$)|(^\d{17}([0-9]|[x,X])$)/,

                    regexText:'请输入正确的身份证号码,15位或者18位...15全为数字,18位最后一位可能是数字也可能是x',    

                },

                {

                    xtype:'textfield',

                    name:'time',

                    fieldLabel:'使用自定义时间格式',

                    allowBlank:false,

                    blankText:'不能为空',

                    vtype:'time'

                }

            ],

 

你可能感兴趣的:(type)