如何在sencha touch中的选择器字段中点击“完成”按钮在文本字段中显示值?

时间:2013-05-03 06:18:14

标签: javascript sencha-touch sencha-touch-2 sencha-touch-2.1

我正在尝试在sencha touch 2.1中的文本字段中显示选择器字段的选定文本。 我在代码中看不到任何错误但仍无法正常工作。下面是我的代码。请提供一些有效的解决方案。

{
    xtype : 'textfield ',
    id : 'PacingMode ',
    style : 'background - color: #585858;',
    top : '13.5%',
    usePicker : true,
    left : '20%',                                                                             
    width : '5%',                                                                         
    listeners : {
          'focus' : function(a,e, eOpts) {                                                                                                                             
                console.log("show caling");
                document.activeElement.blur();
                if (!this.picker) {
                this.picker = Ext.Viewport.add({

    xtype: 'picker',
    id: 'pacingModePickerfield',
    useTitles: true,
    slots: [{
            name: 'quantity',
            title: 'Pacing Mode',
            data: modelMgr.slotsdata1,
            valueField: 'value',
        }
    ],
    doneButton: {
        listeners: {
            // when the done button is tapped, set the value
            tap: function (button, event, eOpts) {

                var sel = document.getElementById("pacingModePickerfield");
                var text_value = sel.options[sel.selectedIndex].text;
                Ext.getCmp('PacingMode').setValue(text_value);

            }
        }
    }

});

}
this.picker.show();
},
change: function (a, e, newValue, eOpts) {
    sendValueSetRequest(this.id);

},
}

3 个答案:

答案 0 :(得分:3)

您应该使用框架从选择器中获取值:

tap: function(button, event, eOpts) {      
    var val = Ext.getCmp("pacingModePickerfield").getValues().quantity;                                                                                                                                                                                                                                                      
    Ext.getCmp('PacingMode').setValue(val);                                                                                                                         
}

答案 1 :(得分:0)

这是我的工作代码:

doneButton : {

   listeners : {
            tap : function(button,event,eOpts) {
                var selectedUpperSensorValue = Ext.getCmp('upperSensorPickerfield').getValue()['Upper Sensor'];
                sendSetPendingRequest("UpperSensor",selectedUpperSensorValue);
         }
    }
}

答案 2 :(得分:0)

试试这个。

var thePicker = new Ext.Picker({
    slots: [ 
        { 
            name : 'limit_speed',
            title: 'Speed', 
            data : [ 
                {text: '50 KB/s', value: 50}, 
                {text: '100 KB/s', value: 100}, 
                {text: '200 KB/s', value: 200}, 
                {text: '300 KB/s', value: 300} 
            ] 
        }
    ],
    listeners: {
        change: function(picker, value, eOpts) {
            alert(value.limit_speed);
        }
    }
});