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自定义验证日期选择范围)