У меня есть форма с двумя полями ввода 'test1' и 'test2' и одним полем со списком. Я хочу проверить эту форму, поля ввода должны быть не emtpy. Поэтому я использую конфиг 'allowBlank: false' и метод контроллера 'onFormValidityChanged'. Это отлично работает.
Теперь я скрываю поле ввода 'test2', когда динамически меняю значение в поле со списком с помощью метода контроллера 'onChangeCombo'. Также я установил config 'allowBlank: true' для поля ввода 'test2'. Но моя форма недействительна, когда скрытое поле ввода '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;
}