我不知道如何从表单字段中获取Values。表单是TabPanel内部项目中的一种。导致控制台抛出此错误:
“未捕获的TypeError:charform.getValues不是函数”
当我使用表单从表单中获取值时,我没有遇到任何问题
var dataupNew = this.up().items.items[0];
var dataSetNew = dataupNew.getValues();
这是我的代码:
Ext.define('Foresto.view.forms.Cutarea', {
extend: 'Ext.panel.Panel',
title: 'Les',
margin: 5,
height: 600,
scrollable: true,
xtype: 'foresto-cutarea',
items: [{
xtype: 'tabpanel',
cls: 'grbuttons',
layout: 'card',
items: [{
xtype: 'panel',
cls: 'grbuttons',
layout: 'vbox',
title: 'Characteristic',
items: [{
xtype: 'selectfield',
label: 'number'
}, {
xtype: 'textfield',
label: 'tract'
}, {
xtype: 'selectfield',
label: 'task',
name: 'targetUsing'
}, {
xtype: 'button',
text: 'save',
cls: 'grbuttons',
margin: 10,
ui: 'confirm',
handler: function () {
var charform = this.up('panel');
var charSet = charform.getValues();
Ext.Ajax.request({
url: '/api/characteristic/',
method: 'POST',
params: charSet
});
}
}]
}]
}]
});
我希望该处理程序执行POST查询。但是现在我有了这个:
未捕获的TypeError:charform.getValues不是函数
答案 0 :(得分:1)
首先,您需要使用this.up('panel')进入tabpanel范围,然后需要this.up('form')才能获取实际的表单,最后可以获取值
检查此工作示例Extjs Fiddle
Ext.application({
name: 'Fiddle',
launch: function () {
Ext.create('Ext.form.Panel', {
title: 'Les',
margin: 5,
height: 600,
renderTo:Ext.getBody(),
scrollable: true,
items: [{
xtype: 'tabpanel',
layout: 'card',
items: [{
xtype: 'panel',
layout: 'vbox',
title: 'Characteristic',
items: [ {
xtype: 'textfield',
label: 'tract'
}, {
xtype: 'button',
text: 'save',
margin: 10,
handler: function () {
var charpanel = this.up('panel');
var charform = charpanel.up('form');
var charSet = charform.getValues();
Ext.Ajax.request({
url: '/api/characteristic/',
method: 'POST',
params: charSet
});
}
}]
}]
}]
});
}
});