yinjianwei1987 2011-10-27 10:05
浏览 203
已采纳

ExtJs4 日期范围验证

日期验证代码(参照的ExtJs4 的例子:ext-4.0.1-gpl/ext-4.0.1/examples/form/adv-vtypes.html):

Ext.apply(Ext.form.field.VTypes, {
                    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 = field.up('form').down('#' + field.startDateField);
                            start.setMaxValue(date);
                            start.validate();
                            this.dateRangeMax = date;
                        }else if (field.endDateField && (!this.dateRangeMin || (date.getTime() != this.dateRangeMin.getTime()))) {
                            var end = field.up('form').down('#' + field.endDateField);
                            end.setMinValue(date);
                            end.validate();
                            this.dateRangeMin = date;
                        }
                        /*
                         * 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;
                    },

                    daterangeText: 'Start date must be less than end date'
                 });

在日期中使用上面的验证:

{
                                xtype: 'container',
                                fieldLabel: 'Name',
                                hideLabel:false,
                                layout: 'hbox',
                                combineErrors: true,
                                defaults: {
                                    hideLabel: 'true'
                                },
                                items: [{
                                    fieldLabel: '关系建立开始',
                                    hideLabel:false,
                                    editable:false,
                                    name: 'searchMarginBeginStart',
                                    id: 'searchMarginBeginStart',
                                    vtype: 'daterange',   //
                                    xtype: 'datefield',
                                    format:'Y-m-d',
                                    width: 300,
                                    endDateField: 'searchMarginBeginEnd', //
                                    listeners:{
                                        specialkey:function(field,e){
                                            var keyCode = e.getKey();
                                            if(keyCode == e.BACKSPACE){
                                                if(!this.editable){
                                                    e.stopEvent();
                                                    return false;
                                                }
                                            }
                                            
                                        }
                                    }
                                }, 
                                {
                                    fieldLabel: '关系建立结束',
                                    hideLabel:false,
                                    editable:false,
                                    name: 'searchMarginBeginEnd',
                                    id: 'searchMarginBeginEnd',
                                    vtype: 'daterange', //
                                    xtype: 'datefield',
                                    format:'Y-m-d',
                                    width: 300,
                                    startDateField: 'searchMarginBeginStart', //
                                    listeners:{
                                        specialkey:function(field,e){
                                            var keyCode = e.getKey();
                                            if(keyCode == e.BACKSPACE){
                                                if(!this.editable){
                                                    e.stopEvent();
                                                    return false;
                                                }
                                            }
                                            
                                        }
                                    }
                                }]
                            }

选好时间后,点击查询,ie提示

这个ie溢出是为什么?

  • 写回答

2条回答 默认 最新

  • xiaohuxiaoyu 2011-10-28 12:10
    关注

    给个方法你:Ext.apply(Ext.form.VTypes,{//自定义验证
    dateCompar:function(complaintEndDate,field){
    if(field.confirmTo){//要比较的另外一个组件,如果存在进行比较
    var complaintBeginDate = Ext.get(field.confirmTo).getValue();//得到比较组件
    return dateCompar(complaintBeginDate,complaintEndDate);
    }
    }
    });
    function dateCompar(dateOne,dateTwo){
    //如果开始和结束时间都不为空,进行比较
    if(Ext.util.Format.trim(dateOne).length > 0 && Ext.util.Format.trim(dateTwo).length > 0){
    dateOne = dateOne.replace(/-/g,"/");
    dateTwo = dateTwo.replace(/-/g,"/");
    if(Date.parse(dateOne) > Date.parse(dateTwo)){
    return false;
    }else{
    return true;
    }
    }else{
    return true;
    }
    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题