2016-05-08 6 views
1

У меня есть панель с вкладками, каждая из которых представляет собой форму с некоторыми текстовыми полями на каждой из этих форм.
Я хочу, чтобы сфокусироваться на первом поле формы вкладки, каждый раз, когда нажата вкладка. Я знаю, как установить фокус на поле, но я хочу, чтобы фокус был при нажатии соответствующей вкладки.
Кто-то, кто это сделал, может сказать мне, как вы это делаете?
Я пробовал tabpanel event tabchange, он работает, но не фокусируется на первом поле; Я попытался каждой вкладке события клик, показать, фокуса, активировать, но они, кажется, не работают. Я не знаю, что еще делать.
Кто-то, кто уже сделал это, может рассказать мне, как они это сделали? СпасибоExtJS tabpanel form field focus

Вот образ tabpanel:
TabPanel with Forms

+0

Команда, которую я использую для фокуса, - 'tabpanel.down ('# tab'). Down ('# firstfield'). Focus()', поэтому я не разбираюсь в этом – alexandre1985

ответ

3

Все это должно быть сделано:

listeners: { 
    tabchange: function(tabPanel, newCard) { 
     setTimeout(function(){ newCard.down('#firstfield').focus(); },10); 
    } 
} 
0

Я сделал следующее и она отлично работает для меня.

xtype: 'tabpanel', 
listeners: { 
    tabchange: function(tabPanel, newCard) { //Activate the field. 
     try{ 
      if(newCard){ 
       var txtField = newCard.down('#TxtField'); 
       if(txtField){ 
        txtField.focus(); 
       } 
      } 
     }catch(err){ //ignore. 
     } 
    } 
} 

Примечание: - Этот код работает только для заданного #TxtField, чтобы получить фокус.