EXT2.2 자체 예, adv-vtypes.js 파일에 포함된daterange 검증에 버그가 존재합니다

1825 단어 ext
설명:
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;
    }

 

좋은 웹페이지 즐겨찾기