如何根据ExtJs中的某些条件启用禁用的文本字段?

时间:2017-03-24 11:38:00

标签: extjs

我尝试使用此代码

listeners : {
  afterrender : function(comp) {
    var countryValue = data.countryCode;
    if (countryValue == "AU" && Ext.isEmpty(comp.getValue())) {
        Ext.getCmp('state').markInvalid('When Country is AU, State is mandatory.');
        Ext.getCmp('state').enable();
        comp.inputValue = true;
    } else {
        comp.clearInvalid();
    }
  }
}

最初禁用状态字段。只有当国家/地区字段获得值为" AU"时,才需要启用状态字段。

2 个答案:

答案 0 :(得分:4)

而不是enable(),你需要给出setdisabled(false);

listeners : {
afterrender : function(comp) {
var countryValue = data.countryCode;
if(countryValue == "AU" && Ext.isEmpty(comp.getValue())){
    Ext.getCmp('state').markInvalid('When Country is AU, State is mandatory.');
    Ext.getCmp('state').setdisabled(false);
    comp.inputValue = true;
}else{
    comp.clearInvalid();
}
}
}

答案 1 :(得分:2)

如果您看到textfield的Doc启用方法是可更改的,并且'传递true将禁止启用启用事件'。我们无法通过传递enable()来启用它,因为它需要布尔值才能使其正常运行。因此,您的第Ext.getCmp('state').enable();行无效。

是的,您有setDisabled(false)可以启用值。

你的行将是

Ext.getCmp('state').setDisabled(false);