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'));  
 
       }   
 
   }  
 
}  

所有文章都会同步发布到我的独立博客上 imsense.site 欢迎点击

宝剑锋从磨砺出,梅花香自苦寒来。

如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】按钮。

如果,您希望更容易地发现我的新博客,不妨关注一下或者分享一下。

未注明转载的文章,版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

原文地址:https://www.cnblogs.com/lslvxy/p/3029925.html