2011-06-02 53 views
8

我正在使用extjs combobox進行性愛領域。它有兩個值「M」和「F」。我想,以使其可與鍵盤:extjs Combobox typeahead /自動選擇單個字符

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

,如果我鍵入 「F 標籤」 的作品(大寫),而不是 「F 標籤」(小寫)。如果我檢查代碼這一點,提前鍵入工作:

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

任何保留價值爲「M」,並有小寫工作方式?

+1

您能否確認您使用的瀏覽器和Ext版本,我已經使用Ext 4.0.0和4.0.1進行了測試。 4.0.1中有一個小錯誤可能是相關的。 – 2011-06-02 14:03:55

+0

我在Chrome瀏覽器(最新開發的13.something)和IE9上看到了extjs 4.0.1的bug。 – 2011-06-02 23:58:40

+0

我在一個editorgrid中使用它,以防萬一它很重要。按[選項卡]時重置的值。 – 2011-06-03 00:00:44

回答

3

不知道,如果你想通了這一個,但我也有類似的問題,並找到了解決辦法:

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

我也有一個網格,是給我的悲傷一個簡單的是/否型的選擇一個組合框。我搜索了一個答案的高低,但想出了這個黑客。

希望它有幫助!

+0

我已經遷移到jquery。我認爲它很有效,但它並不像我想的那麼幹淨。 – 2011-06-22 15:25:28

3

將combobox'caseSensitive'配置屬性設置爲false(caseSensitive:false)。這應該解決問題。

-1

您可以使用

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

其中appMessage是傳遞消息的變量和場域的值來檢查特例。