1

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

 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;
4

2 回答 2

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--;
                                }
                            }
                        });

这给了我一个选择器中取消按钮的句柄。

于 2013-01-21T10:11:31.350 回答
0

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

希望能帮助到你 :)

于 2013-01-10T06:21:05.973 回答