2014-10-17 105 views
0

我有形式如何设置值,从中获取形式ExtJS的文本框

xtype: 'form', 
 
border: false, 
 
padding: '5 0 0 0', 
 
bodyPadding: 5, 
 
items: [{ 
 
\t xtype: 'textfield', 
 
\t fieldLabel: 'Theme Name', 
 
\t name: 'themeName', 
 
\t itemId: 'themeName', 
 
\t allowBlank: false 
 
},{ 
 
\t xtype: 'displayfield', 
 
\t fieldLabel: 'Text', 
 
\t itemId: 'themeText', 
 
     name: 'Text', 
 
\t value: '<div class="theme-text-upload"></div>' 
 
}]

然后我有函数来设置值文本框。

setValueToTextField: function(){ 
 
    var field = form.getForm(); 
 
    for (var i = 0; i < field.items.length; i++) { \t \t \t \t \t \t 
 
\t var name = field.items[i].name; 
 
\t var fieldData = data[name]; 
 
     if(field.items[i].xtype === 'textfield'){ 
 
      field.items[i].name.setValue(fieldData); 
 
     } 
 
    }; 
 
}

但我不能设置值文本框。它显示错误消息setValue()不是一个函数。

+0

尝试field.items [i] .setValue(fieldData);而不是field.items [i] .name.setValue(fieldData); – existdissolve 2014-10-17 03:12:25

+0

我试过,但仍然不能 – 2014-10-17 03:23:31

+0

笏你想在文本字段中设置。数据[名称]表示什么? – AJJ 2014-10-17 06:44:16

回答

0

您的代码并未提供您想要实现的完整信息。粗略地说,我知道你正在设置textfield的值并将显示字段与textfield值绑定。

这是fiddle

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"); 
       } 
      }] 
     }] 
    }); 
}); 
相关问题