我正在使用ExtJS 3,并且在选择/取消选择复选框时需要启用/禁用特定的文本字段,如以下示例所示:

{
    fieldLabel: 'myCheckBox'
    xtype: 'checkbox',
    name: 'myCheckBox'
},{
    fieldLabel: 'myTextField'
    xtype: 'textfield',
    name: 'myTextField',
    disabled: true
}

据我了解,我必须在'myCheckBox'中使用监听器,如下所示:
listeners: {
   change: function() {

   }
}

但是我不知道要将哪些参数传递给我的函数,以及如何将'myTextField'和.enable() .disable()定位到我的函数。你能帮我么?非常感谢你。

基于答案的解决方案(谢谢):
listeners: {
     change: function(cb, checked) {
         Ext.getCmp('myTextField').setDisabled(!checked);
 }
 }

并将id标签添加到textfield组件中,如下所示:
id: 'myTextField'

最佳答案

如果您不确定将什么作为参数传递,则Ext.getCmp()将为您提供组件。它以组件的id为参数。在您的情况下,您必须将id分配给文本字段,并可以在更改事件时将其获取为Ext.getCmp('myTextField')。其中myTextField是文本字段的ID。组件的名称和ID可以相同。

listeners: {
 change: function() {
     Ext.getCmp('myTextField').disable();
     //or
     Ext.getCmp('myTextField').enable();
 }
}

10-08 08:39