2014-02-12 324 views
1

在這裏我嘗試在sencha touch 2.3中獲得datepickerfeild的選定日期的提醒。但它給出了textfeild中最後選擇的日期。這意味着它會選擇當前沒有選擇的值。在sencha touch中獲取日期選擇器中的日期

請幫忙解決這個問題。 這裏是我的源代碼,

{  
    xtype: 'datepickerfield', 
    destroyPickerOnHide: true, 
    label: 'Date', 
    name: 'targetDate', 
    dateFormat :"y/m/d", 
    value: new Date(), 
    picker: { 
     yearFrom : new Date().getFullYear()-1, 

     listeners: { 
      show: function(component, eOpts) { 
       var date = this.getValue(); 
       if (!date || isDateInPast(date)) { 
        this.setValue(new Date()); 
       } 
      }, 
      cancel: function(picker, eOpts) { 
       this.fireEvent('change', this, null); 
      } 
     }, 
     doneButton: { 
      listeners: { 
       tap: function(button, event, eOpts) { 
        var picker = this.up('datepicker'); 
        alert(picker.getValue()); 

       } 
      } 
     } 
    } 
}, 

回答

0

buttontap事件被觸發datepicker值尚未更新,所以picker.getValue()之前選擇的價值回報。

而不是在button上監聽tap事件,您應該在您的datepicker組件上添加change事件的監聽器。傳遞給此偵聽器的第二個參數包含新的選定日期值:

{  
    xtype: 'datepickerfield', 
    destroyPickerOnHide: true, 
    label: 'Date', 
    name: 'targetDate', 
    dateFormat :"y/m/d", 
    value: new Date(), 
    picker: { 
     yearFrom : new Date().getFullYear()-1, 

     listeners: { 
      show: function(component, eOpts) { 
       var date = this.getValue(); 
       if (!date || isDateInPast(date)) { 
        this.setValue(new Date()); 
       } 
      }, 
      cancel: function(picker, eOpts) { 
       this.fireEvent('change', this, null); 
      }, 
      change: function(picker, value) { 
       alert(value); 
      } 
     } 
    } 
} 
+0

是的,它工作...謝謝Akatum –

相關問題