我正在尝试使用 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()我尝试获取该值。但是我想从表单中获取并设置 dispalyfield 的值,而无需getCmp和ID。
答案 0 :(得分:2)
为此,您需要使用form.getForm()
,它将返回Ext.form.Basic
格式。现在,您需要使用getFieldValues()
获取值,并使用setValues()
设置字段的值。
在此 Fiddle 中,我使用上述方法创建了一个演示。
代码片段
Ext.application({
name: 'Fiddle',
launch: function () {
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').getForm(),
values = form.getFieldValues();
Ext.log({
msg: "values: " + Ext.encode(values)
});
Ext.log({
msg: "Home: " + values.home_score
});
Ext.log({
msg: "Visitor: " + values.visitor_score
});
form.setValues({
home_score: 100,
visitor_score: 111
});
}
}]
});
}
});