2013-01-31 68 views
3

我正在使用ExtJS,我有一個textfield組件。 我想只禁用文本字段組件(不是標籤)的inputEl如何禁用ExtJS中的textfield的inputEl?

如果我使用文本字段的setDisabled()方法,那麼它將設置禁用inputEl而且也設置標籤。

我也用過setReadOnly()方法,但它不會灰掉inputEl,只設置爲ReadOnly

有沒有辦法只禁用文本域組件的inputEl

感謝您的幫助。

回答

1

您將有一個自定義類設置爲disabledCls

.ux-item-disabled .x-form-field, .ux-item-disabled .x-form-display-field, .ux-item-disabled .x-form-trigger { 
    filter: alpha(opacity=30); 
    opacity: .3; 
} 

看到JSFiddle

+0

是的,我做了同樣的方法,它的工作原理。但我認爲這有點矯枉過正,textfield組件應該有這個選項作爲一種方法。感謝您的幫助 – SergioKastro

+0

@SergioKastro不客氣:)我認爲配置選項是實現此行爲的最簡單方法。 – sra

0

我已得到了煎茶論壇另一個答案(我認爲這可能是有趣的,它張貼在這裏也) 解決方案

使用setOpacity方法

Ext.onReady(function() { 
var panel =Ext.create('Ext.form.Panel', { 
    title: 'Basic Form', 
    renderTo: Ext.getBody(), 
    bodyPadding: 5, 
    width: 350, 
    items: [{ 
     xtype: 'textfield', 
     fieldLabel: 'Field', 
     name: 'theField', 
     disabled: true 
    }]   
}); 

panel.down('[xtype=textfield]').labelEl.setOpacity(1); });