gpt4 book ai didi

extjs 删除/读取文本字段以形成错误?

转载 作者:行者123 更新时间:2023-12-04 17:57:19 24 4
gpt4 key购买 nike

我有一个表格,其中有一个 radio 组"is",“否”。

当我单击"is"时,我将一个文本字段添加到表单上的字段集中,其中包含配置选项:allowBlank: false。所以有现场验证。当我单击“否”时,所有字段都将从表单上存在的字段集中删除。

问题是当验证处于事件状态时,因此当您进入文本字段并单击离开它而不输入任何字符时,我单击了单选按钮“否”,文本字段消失并在我捕获它时出现以下错误:

Element.alignToXY 带有不存在的元素

当我之后单击单选按钮"is"时,再次显示文本字段,但出现错误:

类型错误: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);
}
}
}
}
});

最佳答案

我不仅成功地做到了这一点 textbox ,但对于整个 panel ,而且效果很好。就我而言,任意数量的 panel可以动态添加和删除,并且效果很好。我使用的相关代码是:

panel.insert(medIndex,getNewPanel());
panel.doLayout();

对于我使用的删除,
var cmp = Ext.getCmp('Panel-' + Id);
if (cmp) {
treatment.remove(cmp, true); // True is the autoDestroy option.
}

这两个组合对我有用。虽然我建议如果您只为一个 textbox 执行此操作,然后将其转换为 hidden场和 disable它。当您 disable一个字段,它不会在 post 中提交, 或 ajax post request .

希望这可以帮助。

关于extjs 删除/读取文本字段以形成错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5800882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com