如何在extjs中设置get-form中textfield的值



我有表格

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");
                }
            }]
        }]
    });
});

最新更新