2016-05-08 1 views
1

J'ai un panneau à onglets dont chaque onglet est une forme avec des champs de texte sur chacun de ces formulaires.
Je veux un moyen de se concentrer sur le premier champ de la forme de l'onglet, chaque fois qu'un onglet est cliqué. Je sais comment définir un champ de mise au point, mais je veux que le focus se fasse lorsque l'on clique sur l'onglet correspondant.
Quelqu'un qui a fait cela peut me dire comment faites-vous cela?
J'ai essayé l'tabpanel événement tabchange, cela fonctionne mais il ne met pas le focus sur le premier champ; Je l'ai essayé chaque onglet événements clic, montrent, accent, mais ils activent ne semblent pas fonctionner. Je ne sais pas quoi faire d'autre.
Quelqu'un qui a déjà fait cela peut me dire comment ils l'ont fait? MerciExtJS tabpanel formulaire champ focus

Voici une image du tabpanel:
TabPanel with Forms

+0

La commande que j'utilise pour le focus est 'tabpanel.down ('# tab'). Down ('# firstfield'). Focus()', donc je ne suis pas en train de tout chambouler – alexandre1985

Répondre

3

Tout ce qu'il a à faire est:

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

Je l'ai fait ce qui suit et il fonctionne très bien pour moi.

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. 
     } 
    } 
} 

Remarque: - Ce code ne fonctionne que pour #TxtField donné pour obtenir le focus.