以Sencha Touch 2的形式添加值

时间:2013-02-05 10:13:17

标签: javascript extjs sencha-touch-2 sencha-touch-2.1

我有几个FormPanel。您可以在每个值中输入值。我需要一些东西来添加所有这些值。我可以用循环或函数来做吗?这是我的代码:

view1.js:

Ext.define('myApp.view.fp2', {
extend: 'Ext.form.Panel',
alias: 'widget.fp2',

config: {
    id: 'fp2',
    styleHtmlContent: true,
    items: [
        {
            xtype: 'fieldset',
            styleHtmlContent: true,
            title: 'Prueba 3',
            items: [
                {
                    xtype: 'selectfield',
                    docked: 'bottom',
                    id: 'f3',
                    margin: 10,
                    labelWidth: '0%',
                    autoSelect: false,
                    options: [
                        {
                            text: '0',
                            value: 0
                        },
                        {
                            text: '1',
                            value: 1
                        }
                    ]
                }
            ]
        },
        {
            xtype: 'fieldset',
            styleHtmlContent: true,
            title: 'Prueba 4',
            items: [
                {
                    xtype: 'selectfield',
                    docked: 'bottom',
                    id: 'f4',
                    margin: 10,
                    labelWidth: '0%',
                    autoSelect: false,
                    options: [
                        {
                            text: '0',
                            value: 0
                        },
                        {
                            text: '1',
                            value: 1
                        },
                        {
                            text: '2',
                            value: 2
                        }
                        ]
                }
            ]
        },
        {
            xtype: 'fieldset',
            styleHtmlContent: true,
            title: 'Prueba 5',
            items: [
                {
                    xtype: 'selectfield',
                    docked: 'bottom',
                    id: 'f5',
                    margin: 10,
                    labelWidth: '0%',
                    autoSelect: false,
                    options: [
                        {
                            text: '0',
                            value: 0
                        },
                        {
                            text: '1',
                            value: 1
                        },
                        {
                            text: '2',
                            value: 2
                        },
                        {
                            text: '3',
                            value: 3
                        }
                    ]
                }
            ]
        },
        {
            xtype: 'fieldset',
            html: 'pregunta 6',
            styleHtmlContent: true,
            title: 'Prueba 6',
            items: [
                {
                    xtype: 'selectfield',
                    docked: 'bottom',
                    id: 'f6',
                    margin: 10,
                    labelWidth: '0%',
                    autoSelect: false,
                    options: [
                        {
                            text: '0',
                            value: 0
                        },
                        {
                            text: '1',
                            value: 1
                        }
                    ]
                }
            ]
        }
        {
            xtype: 'button',
            docked: 'bottom',
            itemId: 'button2',
            margin: 10,
            ui: 'forward',
            text: 'siguiente'
            //go to view2.js
        }
    ]
}
});

view2.js类似于view1但具有其他值。 总结所有价值观的最佳方法是什么?

提前致谢。

2 个答案:

答案 0 :(得分:2)

总结一下?我想你想把它们全部作为键值获取?

每次Ext.form.FormPanel来电

var valueObj = formRef.getForm().getValues();

如果您现在想要将它们合并到一个对象中,您可以执行

Ext.apply(sumValueObj, valueObj ); // will override already existing props

Ext.applyIf(sumValueObj, valueObj ); // will not override already existing props

答案 1 :(得分:1)

您可以使用一个函数来汇总您需要的所有值以及您可以触发该函数的所有选择域的更改事件。

在控制器中,你可以听到这样的改变事件:

'fp2 selectfield' : {
            change  : 'onDataChange'
},

并且可以使用onDataChange方法:

var values = Ext.getCmp("fp2").getValues();
// code to add/subtract whatever you want

PS 我没有测试过这段代码所以请忽略错误