2016-10-27 4 views
0

Я показал выпадающее меню в своем приложении, используя элемент управления selectField. Он работает нормально, когда мы нажимаем кнопку со стрелкой, но когда пользователь нажимает на текстовую клавиатуру, также открывается. Это не поле ввода.клавиатура открыта при щелчке selectField в sencha touch

enter image description here

Код:

        xtype: 'panel', 
            itemId: 'mypanel23', 
            listeners: [ 
             { 
              fn: function(component, eOpts) { 
               component.add({ 
                /***DropDown issue***/ 
                xtype: sessionStorage.voiceOver == "on"?'panel':'selectfield', 
                /***DropDown issue***/ 
                cls: 'myusage_select_list', 
                id: 'billedDD', 
                itemId: 'myselectfield', 
                hideOnMaskTap:true, 
                /***DropDown issue***/ 
                html:sessionStorage.voiceOver == "on"?"<select class='myusage_select_list' id='billedDD_Accessibility'></select>":'', 
                /***DropDown issue***/ 
                defaultPhonePickerConfig: { 
                 cancelButton: { 
                  text: BellMCare.util.config.getLocalizationValue('MobilityMyUsage_Cancel'), 
                  listeners:{ 
                   tap: function(){ 
                    var uAgent = navigator.userAgent; 
                    if(uAgent.match(/Alcatel/i)){ 
                     this.up('picker').setHidden(true); 
                    }                          
                   } 
                  } 
                 }, 
                 doneButton: { 
                  //Sanity Issue - expiry date picker not working and screen struck         
                  cls: 'pickerDoneBtn',           
                  // Sanity Issue -End 
                  text: BellMCare.util.config.getLocalizationValue('MobilityMyUsage_Done'), 
                  listeners:{ 
                   tap: function(){ 
                    BellMCare.util.config.performanceLogs('PERFORMANCE LOGS | UI | Flow 4b | start '); 

                    BellMCare.util.config.performanceLogs('PERFORMANCE LOGS | UI | Flow 4a or 4b | Changed dropdown started '); 

                    var uAgent = navigator.userAgent; 
                    if(uAgent.match(/Alcatel/i)){ 
                     this.up('picker').setHidden(true); 
                    }                          
                   } 
                  } 
                 } 

                }, 
                listeners: 
                { 
                 change: function(selectfield, newValue, oldValue, eOpts) 
                 { 
                  if(oldValue != null){ 
                   /**Dropdown Issue**/ 
                   BellMCare.app.getController("mobilityMyUsage").onBillCycleDropDownChange(); 
                   /**Dropdown Issue**/ 
                  } 
                 }, 
                 focus: function(comp){ 
                  var uAgent = navigator.userAgent; 
                  if(uAgent.match(/Alcatel/i)){ 
                   if(comp.getPhonePicker().isHidden()){ 
                    comp.getPhonePicker().setHidden(false); 
                   } 
                  }                            
                 } 
                } 
               }); 
               /**Dropdown Issue**/ 
               Ext.getCmp("billedDD").innerHtmlElement.dom.addEventListener("change", function(){ 

                BellMCare.app.getController("mobilityMyUsage").onBillCycleDropDownChange(); 

               }); 
               /**Dropdown Issue**/ 
              }, 
              event: 'initialize' 
             }, 
+0

попробуйте добавить редактируемый: false –

+0

вы можете добавить прослушиватель фокуса в поле выбора и остановить событие с помощью * event.stopEvent() * – abeyaz

ответ

2

мне удалось его следующим кодом:

initialize: function(fld){ 
    var textboxEl = fld.element.query('input')[0]; 
    textboxEl.setAttribute('readonly', true); 
} 

Пожалуйста, дайте мне знать, если у вас есть какие-либо сомнения.