E_T

导航

Ext vtype

Posted on 2015-06-09 09:30  E_T  阅读(273)  评论(0)    收藏  举报

//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'
                }
            ],