0

Я пытаюсь отобразить выбранный текст поля выбора в текстовом поле в sencha touch 2.1. Я не вижу ничего плохого в своем коде, но все еще не работает. ниже мой код. Пожалуйста, предоставьте некоторое рабочее решение.Как отобразить значение в текстовом поле при нажатии кнопки «done» в поле выбора в sencha touch?

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

}, 
} 
+0

Что значит «не работает»? Не отображается ли поле выбора? или значение не вводится.? – clu3Less

+0

Да значение не вводилось. Теперь все идет. Я добавил код ниже. – Fabre

ответ

3

Вы должны использовать рамки для получения значения из палитры:

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

Но я хочу отобразить мой сборщик после заполнения данных. Теперь сборщик пуст, если я нажимаю, прежде чем я получу данные. Я хочу полностью отключить сборщик и хочу показать только после получения данных. Как это сделать? – Fabre

0

Это мой рабочий код:

doneButton : { 

    listeners : { 
      tap : function(button,event,eOpts) { 
       var selectedUpperSensorValue = Ext.getCmp('upperSensorPickerfield').getValue()['Upper Sensor']; 
       sendSetPendingRequest("UpperSensor",selectedUpperSensorValue); 
     } 
    } 
} 
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); 
     } 
    } 
});