extjs Combobox typeahead / автоматический выбор для одного символа - PullRequest
8 голосов
/ 02 июня 2011

Я использую extjs combobox для поля секса.У него есть два значения «М» и «F».Я хочу, чтобы его можно было использовать с клавиатурой:

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

Это работает, если я набираю "F tab " (прописные буквы), но не "f tab " (в нижнем регистре).Если я проверю код для этого, typeahead работает:

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

Любые способы сохранить значение как "M" и работать в нижнем регистре?

Ответы [ 3 ]

3 голосов
/ 24 июня 2011

Установите атрибут конфигурации combobox 'caseSensitive' в false (caseSensitive: false). Это должно решить проблему.

3 голосов
/ 21 июня 2011

не уверен, что вы поняли это, но у меня была похожая проблема и я нашел решение:

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

У меня также была сетка, которая доставляла мне горе из-за простого выбора типа да / нет в выпадающем списке. Я искал ответ "высоко" и "низко", но придумал этот взлом.

Надеюсь, это поможет!

0 голосов
/ 24 января 2013

Вы можете использовать

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

, где appMessage - переданная переменная сообщения, и указать значение поля для проверки на особый случай.

...