作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 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。
最佳答案
为此,您需要使用 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
});
}
}]
});
}
});
关于javascript - 如何从 Form Extjs 6.0.2 获取 DisplayField 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51701199/
我是一名优秀的程序员,十分优秀!