【发布时间】:2018-08-07 13:18:01
【问题描述】:
我正在尝试使用 this.up('form').getValues() 从表单中获取 dispalyfield 的值。但我得到了空对象。
有人可以帮我解决这个问题吗? Extjs 版本 6.0.2
这里是我试过的示例代码:
Ext.create('Ext.form.Panel', {
renderTo: Ext.getBody(),
width: 175,
height: 150,
bodyPadding: 10,
title: 'Final Score',
items: [{
xtype: 'displayfield',
fieldLabel: 'Home',
name: 'home_score',
value: '10'
}, {
xtype: 'displayfield',
fieldLabel: 'Visitor',
name: 'visitor_score',
value: '11'
}],
buttons: [{
text: 'Update',
handler: function (button, e) {
var form = this.up('form');
var values = form.getValues();
Ext.log({
msg: "values: ",
values
});
Ext.log({
msg: "Home: " + values.home_score
});
Ext.log({
msg: "Visitor: " + values.visitor_score
});
}
}]
});
注意:显示字段 ----- Ext.getCmp("someID").getValue() 我试过并获得了价值。但我想从没有 getCmp 和 ID 的表单中获取和设置 dispalyfield 的值。
【问题讨论】:
-
你是如何设置值的?该值永远不会改变,所以从那里获取它。
-
@Evan 你可以看到显示字段,我在创建字段时设置值
-
是的,这就是我的观点。
-
是的,但是 form.getValues() 正在返回“textfield”的值对象,而不是“displayfield”。如果我将 xtype 更改为“textfield”,我将获得该值。但我希望该字段作为显示字段。
-
Docs: "一个仅显示的文本字段,未经验证且未提交。当您想要显示表单加载数据中的值但不想让用户编辑或提交该值。”链接(开头):docs.sencha.com/extjs/6.0.0/classic/Ext.form.field.Display.html
标签: javascript forms extjs extjs6-classic