У меня есть форма, где у меня есть радиогруппа «да», «нет».
Когда я нажимаю «да», я получаю текстовое поле, добавленное к набору полей в форме с параметром конфигурации: allowBlank: ложный.Так что есть проверка на поле.Когда я нажимаю «нет», все поля удаляются из набора полей, который присутствует в форме.
Проблема в том, что проверка активна, поэтому, когда вы входите в текстовое поле и щелкаете по нему, не вводя в него никаких символов, и я нажимаю на кнопку радио «Нет», текстовое поле исчезает и дает мнеследующая ошибка, когда я ловлю его:
Element.alignToXY с элементом, который не существует
Когда я нажимаю впоследствии на кнопку радио «да», текстовое поле снова отображается, НО я получаюошибка:
TypeError: dom не определена
Я мог бы отловить эти ошибки и ничего с этим не делать, потому что на самом деле форма работает, текстовые поля добавляются и удаляются, как и должно быть, тамприсутствуют только ошибки, и мне не нравится их концепция.Кто-нибудь знает, почему эта ошибка возникает и как от нее избавиться, чтобы она работала на 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);
}
}
}
}
});