2014-02-12 133 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 –

相关问题