如何在extjs中动态更改文本字段的fieldCls?

时间:2013-03-15 04:01:34

标签: extjs textfield

在我们的应用程序中,我们有一个文本字段和一个复选框。默认情况下,textfield应该是只读的。每当选中复选框时,文本字段应该是可编辑的。

我们能够做到上述要求。但是我们还必须以这样的方式显示文本字段,使用者在只读时会觉得无法编辑它。

我们使用以下代码:

{
   xtype:'textfield',
   id:'textfieldid',
   readOnly:true,
   fieldCls:'x-item-disabled'
    ...
}


{
    xtype:'checkbox',
    listeners:{
        change:function(thisCmp,newValue,oldValue){
                if(newValue==true){
                    Ext.getCmp('textfieldid').addCls('x-item-disabled');
                } else {
                    Ext.getCmp('textfieldid').removeCls('x-item-disabled');
                }
            }
    }
}

但有些我怎么也无法让它发挥作用。

有人可以建议解决方法吗?

其实我需要提交该字段。如果禁用,则不会提交该字段。所以我尝试动态设置fieldCls。

1 个答案:

答案 0 :(得分:2)

你不能使用setDisabled的{​​{1}}方法吗?

Ext.form.field.Text

并且也没有将{ xtype:'checkbox', listeners:{ change:function(thisCmp,newValue,oldValue){ Ext.getCmp('textfieldid').setDisabled(newValue); } } } 指定为将由fieldCls:'x-item-disabled'方法自动管理的TextField的配置,如果您想最初将文本字段呈现为已禁用,则可以使用{{1}在这样的配置中

setDisabled

另一种选择:

你最初使用fieldCls属性来指定禁用类,这可能是错误的,而你可以做这样的事情

disabled : true