我有表格
xtype: 'form',
border: false,
padding: '5 0 0 0',
bodyPadding: 5,
items: [{
xtype: 'textfield',
fieldLabel: 'Theme Name',
name: 'themeName',
itemId: 'themeName',
allowBlank: false
},{
xtype: 'displayfield',
fieldLabel: 'Text',
itemId: 'themeText',
name: 'Text',
value: '<div class="theme-text-upload"></div>'
}]
然后我有一个函数来设置文本字段的值。
setValueToTextField: function(){
var field = form.getForm();
for (var i = 0; i < field.items.length; i++) {
var name = field.items[i].name;
var fieldData = data[name];
if(field.items[i].xtype === 'textfield'){
field.items[i].name.setValue(fieldData);
}
};
}
但我无法将值设置为textfield。它显示了setValue()不是函数的错误消息。
您的代码没有给出您想要实现的目标的完整信息。很明显,我知道你正在尝试设置文本字段的值,并将显示字段与文本字段值绑定。
这是小提琴。
Ext.require([
'Ext.form.*',
'Ext.tip.*'
]);
Ext.onReady(function() {
var parentPanel = Ext.create('Ext.form.Panel', {
renderTo: Ext.getBody(),
items: [{
xtype: 'form',
id: 'sampleform',
border: false,
padding: '5 0 0 0',
bodyPadding: 5,
items: [{
xtype: 'textfield',
fieldLabel: 'Theme Name',
name: 'themeName',
itemId: 'themeName',
allowBlank: false,
listeners: {
'change': function(textField, newVal, oldVal, opt) {
var displayField = Ext.ComponentQuery.query('[name=Text]');
displayField[0].setValue(newVal);
}
}
}, {
xtype: 'displayfield',
fieldLabel: 'Text',
itemId: 'themeText',
name: 'Text',
value: '<div class="theme-text-upload"></div>'
}, {
xtype: 'button',
text: 'populate Text Field',
handler: function() {
var form = this.up('form');
var field = form.getForm();
var textField = Ext.ComponentQuery.query('[name=themeName]');
textField[0].setValue("updated value");
}
}]
}]
});
});