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

日付ピッカー フィールドのキャンセル イベントを使用して試すことができますfired when the cancel button is tapped and the values are reverted back to what they were

それが役に立てば幸い :)

于 2013-01-10T06:21:05.973 に答える
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 に答える