2014-09-16 2 views
0

Mon combo utilise une interrogation à distance. Lorsque l'utilisateur tape quelque chose, le serveur renvoie les résultats correspondants. Cependant, lorsqu'il y a beaucoup de résultats correspondants, le combo se dilate, perd le focus et met en évidence le premier enregistrement renvoyé par le serveur. Le combo a ces propriétés:Combo perd son focus sur la saisie

... 
queryMode:'remote', 
enableKeyEvents:true, 
forceSelection:true, 
... 

L'écran de ce qui se passe ici:

enter image description here

Donc, comme vous pouvez le voir, lorsque l'utilisateur a tapé le dernier caractère, le serveur retourné enregistrements et pour certains (je pense stupide) raison mis en évidence le premier enregistrement. Mais ce qui est plus important, il n'y a plus de focus et l'utilisateur doit de nouveau mettre le curseur sur le champ pour continuer à taper. Pour résoudre ce problème, j'ai essayé ces événements:

'blur':function(){ 
    this.focus(); 
    }, 
    'keydown':function(){ 
    this.focus(); 
    }, 
    'keypress':function(){ 
    this.focus(); 
    }, 
    'keyup':function(){ 
    this.focus(); 
    }, 

Mais il n'y a aucun effet. J'ai également essayé d'utiliser l'événement load, mais cela n'a aucun effet.

Répondre

0
xtype: 'combo', 
... 
listeners:{ 
     // repair raw value after blur 
     blur:function() { 
      var val = this.getRawValue(); 
      this.setRawValue.defer(1, this, [val]); 
     } 
} 

Look this example(thanks to Saki)

+0

Merci, monsieur! La démo semble prometteuse. Maintenant, je vais vérifier mon application et rendre compte. – Jacobian

+0

Malheureusement, cet exemple ne fonctionne pas dans extjs 4.1, que j'ai étiqueté ma question avec – Jacobian

+1

Je me suis douté, la version 4.1 ont de nombreux problèmes. –

0

J'ai eu cette question aussi, pour le résoudre utiliser la propriété afterQuery dans la liste déroulante. Quelque chose comme ceci:

afterQuery: function() { 
    combo.setRawValue(combo.lastQuery); 
    }, 

pd: Je pense que cela est un bug, mais je ne suis pas sûr à ce sujet ...

Questions connexes