2012-08-01 37 views
7

我使用的是ExtJS的組合框鍵入刪除光標。聚焦於組合框時有一個打字遊標。我在創建組合框時試圖實現editable: false,但它只對chrome有幫助。從組合框

也試過clearListeners()功能,看看,如果這個工程上的光標 - 沒有幫助,但它仍然會出現在Firefox和IE。

另一個想法是設置disabled在組合框的輸入字段中。當我手動完成時,它有所幫助。

但是,當我寫的下一個

Ext.get('bu-encodingcount-combobox').select('input').set({disabled:'disabled'});

它並沒有幫助 - 不知道,也許表達是錯誤的。

回答

12

您看到遊標的原因是因爲組合框獲得焦點,所以處理此問題最簡單的方法是在組合獲得焦點時將焦點移動到下拉選擇器上。

只需將此onFocus配置添加到您的組合框的配置:

// example combobox config 
xtype: 'combo', 
allowBlank: false, 
forceSelection: true, 
valueField:'id', 
displayField:'name', 
store: myStore, 

// add this "onFocus" config 
onFocus: function() { 
    var me = this; 

    if (!me.isExpanded) { 
     me.expand() 
    } 
    me.getPicker().focus(); 
}, 

而且,我只會推薦這樣做,如果這是一個組合框forceSelection: true。這將破壞用戶在該領域輸入任何內容的能力。

+0

如何讓光標懸停時對組合場? – freestyle 2013-08-01 16:27:36

+0

此外,如果您的商店被裝載在下拉菜單點擊,就可以裝載存儲在焦點事件本身:myStore.load();最初這是我的問題,直到我意識到商店尚未裝載。希望這可能會幫助其他人。 – 2015-02-02 20:52:04

+1

要在Ext 5中的所有瀏覽器中強制執行此操作,您現在必須使用me.getPicker()。focus(true); – 2015-09-30 18:17:37

3

您可以添加配置,

編輯:假

然後表現爲正常的組合。

+0

不幸的是,有一個已知的問題,這隻適用於chrome,這就是它試圖解決的問題。 – 2015-09-30 16:36:11

0

TRY -

對於IE

combo.inputEl.set({禁用: '禁用'});

對於Firefox -

combo.inputWrap.set({禁用: '禁用'});

對於鉻 -

combo.inputCell.set({禁用: '禁用'});

這做工精細。