2014-10-01 2 views
0

텍스트 필드 start_date 및 end_date에 표시하고 싶습니다. 여기를 클릭하면 각각에 대한 datepicker가 표시됩니다. 이것에 대한 제안. 다음은 텍스트 필드를 클릭 할 때 datepicker를 표시하는 방법

사전

감사는 코드가

 Ext.define('CustomApp', { 
      extend: 'Rally.app.App', 
      componentCls: 'app', 
      _startDate : 0, 
      _endDate : 0, 
      launch: function() { 
       var that = this; 
       var minDate = new Date(new Date() - 8640000000*90); //milliseconds in day = 86400000 
       var datePicker = Ext.create('Ext.panel.Panel', { 
        title: 'Choose a PSI Dates', 
        bodyPadding: 10, 
        width: 400, 
        layout: { 
         type: 'hbox', 
        }, 
        renderTo: Ext.getBody(), 
        items: [{ 
         xtype: 'datepicker', 
         title: 'PSI start date', 
         minDate: minDate, 
         id: 'start_date', 
         handler: function(picker, date) {         
          that._startDate = Ext.getCmp('start_date').getValue(); 
         } 
        }, 
        { 
         xtype: 'datepicker', 
         title: 'PSI end date', 
         minDate: minDate, 
         id: 'end_date', 
         handler: function(picker, date) { 
          that._endDate = Ext.getCmp('end_date').getValue(); 
          that._prepareChart(); 
         } 

        } 
        ] 
       });   
       this.add(datePicker); 
       //this.add(enddatePicker);   
      }, 
+0

http://jqueryui.com/datepicker/ –

+0

@AbdulJabbar - 답장을 보내 주셔서 감사합니다,하지만 난 jQuery를 사용하지 않는,에 extjs 날짜 선택기를 사용하고 있습니다. – Sontya

+0

CustomApp 시작 기능을 호출 할 start_date 및 end_date 필드에 onfocus 이벤트를 추가 할 수 있습니다. –

답변

2

사용하여 DateField 대신 날짜 선택기를 니펫을 아래

enter image description here

그리고이 이미지를입니다. JSFiddle

items: [{ 
      fieldLabel: 'Start Date', 
      xtype: 'datefield',    
      minDate: minDate, 
      id: 'start_date', 
      listeners: { 
       render: function(){ 
        var picker = this.getPicker(); 
        picker.on("select",function(){ this.hide(); }); 
        this.triggerCell.hide(); 
        this.inputCell.on("click",function(){             
         if(picker.hidden)        
          picker.show(); 
         else 
          picker.hide(); 
        });          
       } 
      } 
     }, { 
      fieldLabel: 'End Date', 
      xtype: 'datefield', 
      minDate: new Date(), 
      listeners: { 
       render: function(){ 
        var picker = this.getPicker(); 
        picker.on("select",function(){ this.hide(); }); 
        this.triggerCell.hide(); 
        this.inputCell.on("click",function(){             
         if(picker.hidden)        
          picker.show(); 
         else 
          picker.hide();        
        });          
       } 
      } 
    }] 
+0

감사합니다. 멋지게 보입니다. 이걸 시도해 보았습니다. 보내 주신 피델을 시도했지만 날짜 표시기가 표시되면 숨어 있지 않았습니다. – Sontya

+0

나는 크롬도 사용하고 있습니다. – Sontya

+0

답변과 바이올린을 업데이트했습니다. 지금 시도해보십시오. – Gilsha

0

이 시도 :

{ 
    xtype: 'datefield', 
    name: 'order_date', 
    emptyText: '', 
    fieldLabel: 'Order Date', 
    hideLabel: true, 
    allowBlank: true, 
    margins: '0 10 0 10', 
    format:'d/m/Y', 
    submitFormat:'Y-m-d', 
    value: '', 
    maxValue: new Date(), 
    listeners:{ 
     render: function(cmp, eOpts){ 
      //this.triggerCell.hide(); 
      cmp.inputCell.on("click",function(){ 
       cmp.onTriggerClick(); 
      }); 
     } 
    } 
} 
관련 문제