2個Ext.form.DateField 取值範圍控制

來源:互聯網
上載者:User

項目中有時需要用到起始日期和結束日期,要做到起始日期必須小於結束日期。在extjs中已經有現成的函數,摘錄如下:

view plaincopy to clipboardprint?
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);  
                    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;  
                }  
                /* 
                 * 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;  
            }  
        }); 
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);
     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;
    }
    /*
     * 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;
   }
  });

然後分別定義起始日期和結束日期控制項:

view plaincopy to clipboardprint?
var startDate = new Ext.form.DateField({  
                fieldLabel : '開始日期',  
                emptyText : '請選擇',  
                disabledDays : [1, 2, 5],//將星期一,二,五禁止.數值為0-6,0為星期日,6為星期六  
                labelWidth : 100,  
                readOnly : true,  
                allowBlank : false,  
                format : 'Y-m-d',//日期格式  
                name : 'startdt',  
                id : 'startdt',  
                vtype : 'daterange',//daterange類型為上代碼定義的類型  
                endDateField : 'endDate'//必須跟endDate的id名相同  
            })  
    var endDate = new Ext.form.DateField({  
                fieldLabel : '結束日期',  
                emptyText : '請選擇',  
                disabledDays : [1, 2, 5],//將星期一,二,五禁止.數值為0-6,0為星期日,6為星期六  
                readOnly : true,  
                allowBlank : false,  
                format : 'Y-m-d',//日期格式  
                name : 'enddt',  
                id : 'endDate',  
                vtype : 'daterange',//daterange類型為上代碼定義的類型  
                startDateField : 'startdt'//必須跟startDate的id名相同  
            }) 
var startDate = new Ext.form.DateField({
    fieldLabel : '開始日期',
    emptyText : '請選擇',
    disabledDays : [1, 2, 5],//將星期一,二,五禁止.數值為0-6,0為星期日,6為星期六
    labelWidth : 100,
    readOnly : true,
    allowBlank : false,
    format : 'Y-m-d',//日期格式
    name : 'startdt',
    id : 'startdt',
    vtype : 'daterange',//daterange類型為上代碼定義的類型
    endDateField : 'endDate'//必須跟endDate的id名相同
   })
 var endDate = new Ext.form.DateField({
    fieldLabel : '結束日期',
    emptyText : '請選擇',
    disabledDays : [1, 2, 5],//將星期一,二,五禁止.數值為0-6,0為星期日,6為星期六
    readOnly : true,
    allowBlank : false,
    format : 'Y-m-d',//日期格式
    name : 'enddt',
    id : 'endDate',
    vtype : 'daterange',//daterange類型為上代碼定義的類型
    startDateField : 'startdt'//必須跟startDate的id名相同
   })

效果如下兩圖:

 

                               圖1.選擇開始日期

 

                                  圖2.選擇結束日期

 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/security08/archive/2009/12/24/5070749.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.