首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

关于两个form中 Ext DateField 表单的印证

2012-11-01 
关于两个form中Ext DateField 表单的验证//判断两个日期差Ext.apply(Ext.form.VTypes, {daterange : funct

关于两个form中 Ext DateField 表单的验证

//判断两个日期差Ext.apply(Ext.form.VTypes, {   daterange : function(val, field) {        var date = field.parseDate(val);        if(!date){            return;        }        if (field.startDateField && (!this.dateRangeMax || (date.getTime() != this.dateRangeMax.getTime()))) {            var start = Ext.getCmp(field.startDateField);            start.setMaxValue(date);//这两行调换一下位置            this.dateRangeMax = date;//这两行调换一下位置            start.validate();                   }         else if (field.endDateField && (!this.dateRangeMin || (date.getTime() != this.dateRangeMin.getTime()))) {            var end = Ext.getCmp(field.endDateField);            end.setMinValue(date);      //这两行调换一下位置             this.dateRangeMin = date;  //这两行调换一下位置            end.validate();                   }        /*         * Always return true since we're only using this vtype to set the         * min/max allowed values (these are tested for after the vtype test)         */        return true;    }});



经过 longlong 的帮助 好像搞懂了 原因是出在

两个form可能拿到的是同一个Ext.form.VTypes的实例的引用 估计这地方有问题 在两个form进行时间验证时 dateRangMin或dateRangeMax是否改变的是同一份地址的值呢?这个需要再深入的看一下呵呵 如果在validate之前将dateRangeMin或Max设为当前form的feild的最小或最大日期 再去validate 我按照这个思路去调整 结果可以了 但是不是这个原因 还需要看看源码 求证一下了 你也可以看看

热点排行