我目前正在尝试向我的按钮添加一个监听器,以便在单击它时,它会将'textId'文本字段中的内容加载到所述文本字段和按钮上方的html文本中。这样他们就可以在这个字段中输入多个内容并删除它们,如果之后不需要,因为文本会被删除按钮加载。
createTextAndButton: function(fieldId, v, textId, field, text, num) {
var n = new Number(num);
var ct = new Ext.container.Container({
xtype:"container",
layout:"vbox",
//padding:"5 0",
items: [{
xtype:"container",
itemId: fieldId,
}, {
xtype: "container",
layout:"hbox",
padding: "5 0",
items: [{
xtype: 'textfield',
vtype: v,
name: textId,
fieldLabel: field,
validateOnBlur: true
}, {
xtype: "button",
text: text,
width: 115,
handler: function() {
ct.down('#' + fieldId).add(Ext.ComponentMgr.create({
xtype: "container",
itemId: 'entry' + n,
layout: "hbox",
padding: "5 0",
items: [{
xtype: "component",
html: "<p>" + textId.getValue() + "</p>"
}, {
xtype: "button",
itemId: 'dButton',
text: "delete",
width: 80
}
}]
}));
n++;
}
}]
}]
});
return ct;
}
我得到Uncaught TypeError:当我点击按钮时,对象ignoreField没有方法'getValue'。我不确定为什么textfields getValue方法不起作用或者我做的事情显然是错误的。
答案 0 :(得分:0)
itemId是特定容器的本地,getCmp()只会检索组件的全局ID。
这样做会更容易:
createTextAndButton: function(fieldId, type, v, textId, field, text) {
var ct = new Ext.container.Container({
xtype:"container",
layout:"vbox",
//padding:"5,0",
items: [{
xtype:"container",
itemId: fieldId,
},{
xtype: "container",
layout:"hbox",
padding: "5 0",
items: [{
xtype: type,
vtype: v,
itemId: textId,
fieldLabel: field,
validateOnBlur: true
}, {
xtype: "button",
text: text,
width: 115,
handler: function() {
ct.down('#' + fieldId).add(new Ext.container.Container({
xtype: "container",
padding: "5 0",
items: [{
xtype: "component",
autoEl: "pre",
html: textId.getValue()
}, {
xtype: "button",
text: "delete",
width: 115
}]
}));
}
}]
}]
});
return ct;
}
答案 1 :(得分:0)
感谢所有试图帮我解决这个问题的人。我弄清楚我的错在哪里。对于我的文本字段,我应该只使用id:
标记而不是name:
或itemId
这是关心人的工作代码。
createTextAndButton: function(fieldId, textId, field, text, num) {
var n = new Number(num);
var ct = new Ext.container.Container({
xtype:"container",
layout:"vbox",
//padding:"5 0",
items: [{
xtype:"container",
itemId: fieldId,
}, {
xtype: "container",
layout:"hbox",
padding: "5 0",
items: [{
xtype: 'textfield',
id: textId,
fieldLabel: field,
validateOnBlur: true
}, {
xtype: "button",
text: text,
width: 115,
handler: function() {
ct.down('#' + fieldId).add(Ext.ComponentMgr.create({
xtype: "container",
Id: 'entry' + n,
layout: "hbox",
padding: "5 0",
items: [{
xtype: "component",
html: "<p>" + Ext.getCmp(textId).getValue() + "</p>"
}, {
xtype: "button",
itemId: 'dButton',
text: "delete",
width: 80
}]
}));
n++;
}
}]
}]
});
return ct;
}