2016-05-08 11 views
1

Ich habe eine tabbed-panel, die jede tab als formular mit einigen textfields auf jeder dieser formen.
Ich möchte eine Möglichkeit, auf das erste Feld des Formulars der Registerkarte zu konzentrieren, jedes Mal, wenn auf eine Registerkarte geklickt wird. Ich weiß, wie man ein Feld scharfstellt, aber ich möchte den Fokus haben, wenn der entsprechende Tab angeklickt wird.
Jemand, der das getan hat, kann mir sagen, wie machst du das?
Ich habe versucht, die tabpanel ereignis tabchange, es funktioniert, aber es setzt nicht auf das erste feld konzentrieren; Ich habe jedem Tab Ereignisse versucht Klick, zeigen , Fokus, aktivieren aber sie scheinen nicht zu funktionieren. Ich weiß nicht, was ich sonst tun soll.
Jemand, der das schon getan hat, kann mir bitte sagen, wie haben sie das gemacht? DankeExtJS tabpanel form feldfokus

Hier ein Bild des TabPanel ist:
TabPanel with Forms

+0

Der Befehl, den ich für den Fokus verwende, ist 'tabpanel.down ('# tab'). Down ('# firstfield'). Focus()', damit mache ich mir nichts vor – alexandre1985

Antwort

3

Alles, was es getan werden muss, ist:

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

Ich habe getan, die folgenden und es funktioniert gut für mich.

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

Hinweis: - Dieser Code funktioniert nur für bestimmte #TxtField, um den Fokus zu erhalten.