将形式为extjs 4.1的两个值组合在一起

时间:2013-12-05 16:03:13

标签: javascript forms extjs datefield

我刚刚构建了一个包含两个值的表单,一个是一段时间,另一个是客户端的名称。现在我想用日期字段和下拉菜单更改它们的文本字段。下拉菜单已生成,但对于字段“期间”,我有一些问题。 That是手册中用于构建日期字段的页面。问题是,表单字段在一个字符串中占用两个日期,它被称为“句点”。但是它们制作的日期字段每个都是一个字段,每个字段都有一个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
}],

如何将单个字段中的两个日期合并为要处理的表单?是否存在黑客攻击或解决方法?谢谢。

更新 好吧,我设置了一个带有“句号”id的隐藏字段。它的值应该是两个日期字段的值的组合。问题是我不知道如何获取其他对象内的日期字段的值。代码如下(要使其工作,您必须在“句点”字段中删除“value:”行):

{
                        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'
                        }

究竟我如何结合这两个值?感谢

1 个答案:

答案 0 :(得分:1)

一种快速简便的方法,IMO,就是简单地创建一个隐藏字段,用于存储两者的价值。然后,在提交处理程序中,只需从两个字段中获取值并将它们组合成您需要的任何值,并将其设置在隐藏字段上。

如果您的表单正在提交模型实例,您可以执行相同的操作,但只需设置所需持久属性的值,而不必使用隐藏的表单字段。

这些都不会被视为黑客攻击 - 只需利用API来满足您的业务需求。

“更全面”的解决方案是创建一个需要输入两个日期字段的自定义字段,但是具有getValue()的自定义实现,它从基础日期字段中检索值并创建复合值。以下是属性网格编辑器的示例:https://fiddle.sencha.com/#fiddle/t1

表格的原则是相同的。