У меня есть форма, где у меня есть радиогруппа «да», «нет».
Когда я нажимаю «да» Я добавил текстовое поле в набор полей формы с параметром конфигурации: allowBlank: false. Итак, есть проверка на местах. Когда я нажимаю «нет», все поля удаляются из набора полей, присутствующего в форме.
Проблема в том, когда активна проверка, поэтому, когда вы заходите внутрь текстового поля и щелкаете от него, не вводя в него никаких символов, и я нажимаю радиокнопку «нет», текстовое поле исчезает и выдает следующую ошибку, когда я улавливаю это:
Element.alignToXY с элементом, который не существует
Когда я затем нажимаю радиокнопку «да», текстовое поле отображается снова, НО я получаю сообщение об ошибке:
TypeError: dom is undefined
Я мог поймать эти ошибки и ничего не сделать с ними, потому что на самом деле форма кажется работающей, текстовые поля были добавлены и удалены, как и должно, есть только ошибки, и мне не нравится концепция этого. Кто-нибудь знает, почему возникает эта ошибка и как от нее избавиться, чтобы она работала на 100% правильно?
Вот пример кода:
var radiogroup = new Ext.form.RadioGroup({
fieldLabel: 'Radio group test',
allowBlank: false,
anchor: '85%',
items: [{
boxLabel: 'Yes',
name: 'radio',
inputValue: 1
}, {
boxLabel: 'No',
name: 'radio',
inputValue: 2
}],
listeners: {
change: function (rg, radio) {
if (radio.inputValue == 1) {
var textfield_test = new Ext.form.TextField({
fieldLabel: 'Test',
allowBlank: false,
id: 'test',
name: 'test',
anchor: '85%',
width: 320,
helpText: 'test'
});
textfield_fieldset.insert(textfield_fieldset.items.length, textfield_test);
} else {
try {
txt_test = Ext.getCmp('test');
if (txt_test) {
textfield_fieldset.remove(txt_test);
}
textfield_fieldset.doLayout();
} catch (err) {
alert(err);
}
}
}
}
});