EXTJS自定义验证日期选择范围

方法一: 
//自定义VType类型,验证日期选择范围

    Ext.apply(Ext.form.field.VTypes,{

        //验证方法

        dateRange:function(val,field){

            var beginDate=null,//开始日期

                beginDateCmp=null,//开始日期组件

                endDate=null,//结束日期

                endDateCmp=null,//结束日期组件

                validStatus=true;//验证状态

            if(field.dateRange){

                //获取开始时间

                if(!Ext.isEmpty(field.dateRange.begin)){

                    beginDateCmp=Ext.getCmp(field.dateRange.begin);

                    beginDate=beginDateCmp.getValue();

                }

                //获取结束时间

                if(!Ext.isEmpty(field.dateRange.end)){

                    endDateCmp=Ext.getCmp(field.dateRange.end);

                    endDate=endDateCmp.getValue();

                }

            }

            //如果看似是时间或结束时间有一个为空通过验证

            if(!Ext.isEmpty(beginDate)&&!Ext.isEmpty(endDate)){

                validStatus=beginDate<=endDate;

            }

            return validStatus;

        },

        //验证提示信息

        dateRangeText:'开始时间不能大于结束时间'

    }); 



 

 

//使用:

 



        {

 

                id:'beginDate',

 

                fieldLabel:'入学开始日期',

 

                dateRange:{begin:'beginDate',end:'endDate'},//用于vtype类型dateRange

 

                vtype:'dateRange'

 

            },{

 

                id:'endDate',

 

                fieldLabel:'入学结束日期',

 

                dateRange:{begin:'beginDate',end:'endDate'},//用于vtype类型dateRange

 

                vtype:'dateRange'

            } 

 

 

 
方法二: 

//通过监听器设置datefield最大值最小值

 





listeners: {  

 

  'focus': function(e){  

 

       var endTime=Ext.getCmp('endTimeId').getValue();  

 

       if(endTime!=''){  

 

          this.setMaxValue(endTime.format('Y-m-d'));  

 

       }   

 

   }  

 

}  

你可能感兴趣的:(ExtJs)