我有一个包含两个输入字段“test1”和“test2”以及一个组合框的表单。我想验证这个表单,输入字段不应该是空的。因此,我使用配置“allowBlank:false”和控制器方法“onFormValidityChanged”。这工作正常。
现在,当我使用控制器方法“onChangeCombo”动态更改组合框中的值时,我隐藏了输入字段“test2”。另外,我设置了输入字段“test2”的配置“allowBlank:true”。但是当隐藏输入字段“test2”为空时,我的表单无效。
如何从有效性检查中排除隐藏的输入字段?
我使用 ExtJS 6.6 版。
谢谢你的提示,托马斯
看法:
items : [{
xtype : ' formpanel',
trackResetOnLoad : true,
layout : {
type : 'vbox',
align : 'stretch'
},
items : [
{
xtype : ' textfield',
name : 'test1'
itemId : 'test1',
allowBlank : false,
fieldLabel : 'test1'
},
{
xtype : ' combobox',
name : 'combo',
itemId : 'combo',
store: myStore,
listeners : {
change : 'onChangeCombo'
}
},
{
xtype : ' textfield',
name : 'test2'
itemId : 'test2',
allowBlank : false,
fieldLabel : 'test2'
}],
listeners : {
validitychange : 'onFormValidityChanged'
}
}];
控制器:
onFormValidityChanged : function(form, valid) {
var win, button;
win = form.owner.up('window');
button = win.down('[xtype=button]');
button.setDisabled(!valid);
},
onChangeCombo : function(combobox) {
var win, test2;
win = combobox.up('window');
test2 = win.down('textfield[itemId=test2]');
test2.hide();
test2.allowBlank = true;
}