我尝试使用此代码
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"时,才需要启用状态字段。
答案 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);