EXT2.2自带例子,adv-vtypes.js文件中包含的daterange验证存在一个bug

说明:

采用daterange验证的话,不能同时初始化两个DateField的值。如果同时初始化的话,会导致无限循环。

附件中包含一个例子。

 

EXT中包含的原代码:

 需要修改的地方,用红色标识

 

daterange : function(val, field) {
        var date = field.parseDate(val);

        if(!date){
            return false;
        }
        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;
    }

 

 

 

 修改后的代码:

 

daterange : function(val, field) {
        var date = field.parseDate(val);

        if(!date){
            return false;
        }
        if (field.startDateField && (!this.dateRangeMax || (date.getTime() != this.dateRangeMax.getTime()))) {
           this.dateRangeMax = date;
            var start = Ext.getCmp(field.startDateField);
            start.setMaxValue(date);
            start.validate();
        }
        else if (field.endDateField && (!this.dateRangeMin || (date.getTime() != this.dateRangeMin.getTime()))) {
            this.dateRangeMin = date;
            var end = Ext.getCmp(field.endDateField);
            end.setMinValue(date);
            end.validate();
         }
         return true;
    }

 

 

你可能感兴趣的:(ext)