日期选择器中的取消按钮

时间:2013-01-10 05:50:31

标签: datepicker sencha-touch-2

我创建了一个datepicker字段。显示日期选择器并点击取消按钮时,它将第一个值作为默认值。我需要检查一下我可以处理日期pipcker字段

上的取消按钮的情况
 case 'Date':
        console.log('date value: '+value);
        var dt = new Date(value);
        console.log('new date: '+dt);
        if (dt == 'Invalid Date' || dt == 'NaN/NaN/0NaN') {
            value = '';
        } else {
            value = dt;
        }
        element = Ext.create('Ext.Container', {
            layout : 'hbox',
            items : [ {
                xtype : 'datepickerfield',
                label : label,
                name : 'standTimeEdit',
                defaultDateFormat : 'D M Y',
                value : value,
                width : '100%',
                style : 'border: 0px solid gray;border-radius:10px',
                listeners:{
                    change:function(){
                         value = dt;
                    }
                    cancel:function(){
                        console.log('cancel event fired');
                    }
                }
            } ]
        });
        break;

2 个答案:

答案 0 :(得分:0)

您可以尝试使用fired when the cancel button is tapped and the values are reverted back to what they were的日期选择器字段cancel event

希望有所帮助:)

答案 1 :(得分:0)

我通过覆盖选择器中的取消事件解决了这个问题。

var picker = this.getPicker();
picker.on('cancel',function(){
                            if(defValue == ''){
                                if(count > 1){
                                    picker.setValue(preVal);
                                    dateObj.setValue({day: preVal.getDate(), month: (preVal.getMonth()+1), year : preVal.getFullYear()});
                                }
                                else{
                                    picker.setValue(null);
                                    dateObj.setValue(null);
                                    count--;
                                }
                            }
                        });

这为我提供了选择器中取消按钮的句柄。