将两个值组合成extjs 4.1的形式
combining two values in a form extjs 4.1
我刚刚构建了一个具有两个值的表单,一个是时间段,另一个是客户端名称。现在我想用日期字段和下拉菜单来更改它们的文本字段。下拉菜单是制作的,但对于字段"期间",我有一些问题。这是手册中用于构建日期字段的页面。问题是,表单字段在一个字符串中包含两个日期,它被称为"周期"。但它们的日期字段都是一个单独的字段,表单中的每个字段都有一个id,所以我不会有我要搜索的字段,而是两个分开的字段。代码如下:
items: [{
xtype: 'datefield',
anchor: '100%',
fieldLabel: 'From',
name: 'from_date',
maxValue: new Date() // limited to the current date or prior
}, {
xtype: 'datefield',
anchor: '100%',
fieldLabel: 'To',
name: 'to_date',
value: new Date() // defaults to today
}],
如何将这两个日期组合在一个字段中以供处理表单?有破解或变通方法吗?非常感谢。
更新好的,我用"period"id设置了一个隐藏字段。它的值应该是两个日期字段的值的组合。问题是我不知道如何在其他对象中获取日期字段的值。代码如下(要使其工作,您必须去掉"周期"字段中的行"值:"):
{
xtype: 'datefield',
fieldLabel: 'Start date',
format: 'Ymd',
//altFormats: 'Ymd',
listeners: {
'change': function(me) {
alert(me.getSubmitValue());
}
}},
{
xtype: 'datefield',
fieldLabel: 'End date',
format: 'Ymd',
//altFormats: 'm/d/Y',
listeners: {
'change': function(me) {
alert(me.getSubmitValue());
}
}},
{
xtype: 'textfield',
hidden:true,
fieldLabel: 'Period',
id: 'period'
value:
},
{
xtype: 'textfield',
name: 'client',
fieldLabel: 'Client',
id: 'client'
}
我该如何将这两个值结合起来?感谢
IMO是一种简单快捷的方法,只需创建一个隐藏字段即可存储两者的值。然后,在提交处理程序中,只需从两个字段中获取值,并将它们组合成所需的任何值,然后将其设置在隐藏字段上。
如果您的表单正在提交一个模型实例,您可以做同样的事情,但只需设置所需的持久属性的值,而不必使用隐藏的表单字段。
顺便说一下,这两种方法都不被认为是破解——只是利用API来满足您的业务需求。
"更全面"的解决方案是创建一个自定义字段,该字段需要两个日期字段的输入,但具有getValue()的自定义实现,该实现从基础日期字段中检索值并创建复合值。下面是一个为属性网格编辑器执行此操作的示例:https://fiddle.sencha.com/#fiddle/t1
对于一个表单,原理是一样的。
相关文章:
- 将数据加载到存储后,Extjs组合框为空
- ExtJs组合框显示字段编码
- extjs组合框自动点击下拉箭头
- 在 ExtJS 组合框选取器上滚动事件
- ExtJS组合框和过滤存储
- 用 JSON 填充 ExtJS 组合框
- 从 Rally 构建的 extjs 组合框中,如何获取子 ChangeSet 记录上的字段
- 带有超链接的 ExtJs 组合框 dispalyfield
- ExtJS 4 组合框在表单绑定上显示值字段而不是显示字段
- ExtJS-组合框中记录的未定义索引
- Extjs组合框在存储区未加载任何结果时保持重置文本值
- extJS组合框.动态数据加载
- 设置extjs 6组合框's在运行时存储数据会导致显示错误
- 如何创建一个通用的ExtJS组合框存储
- 强制extjs组合框至少有一个项目
- ExtJs组合过滤不能正常工作
- 自动完成在extjs组合框
- 我怎样才能在extjs组合框上得到突出显示的项目
- 隐藏extjs组合框的下拉列表
- Extjs -组合与自动完成:两种类型的值