如何从 Form Extjs 6.0.2 获取 DisplayField 的值?
How to get values of DisplayField from Form Extjs 6.0.2?
我正在尝试使用 this.up('form').getValues()[= 从表单中获取 dispalyfield 的值24=]。但我得到的是空对象。
有人可以帮我解决这个问题吗? 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 的值。
为此,您需要使用 form.getForm()
it will return the Ext.form.Basic
form. Now you need to use getFieldValues()
for getting the values and 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
});
}
}]
});
}
});
我正在尝试使用 this.up('form').getValues()[= 从表单中获取 dispalyfield 的值24=]。但我得到的是空对象。
有人可以帮我解决这个问题吗? 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 的值。
为此,您需要使用 form.getForm()
it will return the Ext.form.Basic
form. Now you need to use getFieldValues()
for getting the values and 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
});
}
}]
});
}
});