2011-06-02 18 views
8

Estoy utilizando extjs combobox para un campo de sexo. Tiene dos valores "M" y "F". Quiero que sea utilizable con el teclado:extjs Combobox typeahead/selección automática para un solo carácter

{ 
    xtype: 'combo', 
    typeAhead: true, 
    queryMode: 'local', 
    minChars: 1, 
    triggerAction: 'all', 
    store: [ 
      ['M', 'M'], 
      ['F', 'F'] 
    ] 
} 

Esto funciona si escribo "F pestaña" (mayúsculas), pero no "f pestaña" (en minúsculas). Si puedo comprobar el código de esto, el typeahead funciona:

store: [ 
    ['M', 'Male'], 
    ['F', 'Female'] 
] 

Cualquier maneras de mantener el valor de "M" y tiene obras en minúscula?

+1

Podría confirmar el navegador y la versión Ext que está utilizando, lo he probado con Ext 4.0.0 y 4.0.1. Hay un pequeño error corregido en 4.0.1 que podría ser relevante. –

+0

Vi el error en extjs 4.0.1 en Chrome (último desarrollo, 13. algo) e IE9. –

+0

Estoy usando esto en una editorgrid, por si acaso importa. El valor se restablece cuando presiono [tab]. –

Respuesta

3

no estoy seguro si te has dado éste hacia fuera, pero tenía un problema similar y ha encontrado la solución:

enableKeyEvents : true, 
forceSelection : true, 
typeAhead : false, 
    listeners : 
    { 
     'keyup' : function(me) 
     { 
      var val = me.getRawValue(); 
      if(val == 'm' || val == 'f') 
       me.setValue(val.toUpperCase()); 
     } 
    } 

También tuve una cuadrícula que me daba pena por un simple sí/no selección del tipo de un combobox. He buscado una respuesta alta y baja, pero se me ocurrió este truco.

Espero que ayude!

+0

He migrado a jquery. Creo que funciona, pero no está tan limpio como deseo. –

3

Establezca el atributo de configuración combobox 'caseSensitive' en false (caseSensitive: false). Esto debería resolver el problema.

-1

Puede utilizar

listeners: { 
    'specialkey': function(field, e) { 
    if (e.getKey() == e.ENTER) { 
     me.searchList(appMessage); 
    } 
    } 
} 

donde appMessage es la variable mensaje que se transmite, y el campo del valor de campo para comprobar si hay caso especial.

Cuestiones relacionadas