繁体   English   中英

Sencha Touch 2 - 如何获取表单值?

[英]Sencha Touch 2 - How to get form values?

我有一个Sencha Touch 2 MVC应用程序,其中包含一个表单作为视图。 我试图从控制器获取它的值而没有成功。

怎么可以这样做? 我正在发布我的视图/控制器代码。

视图:

Ext.define('MyApp.view.LoginForm', {
    extend: 'Ext.form.Panel',
    config: {
        fullscreen: true,
        items: [
            {
                xtype: 'fieldset',
                title: 'Login',
                id: 'loginform',
                items: [
                    {
                        xtype: 'emailfield',
                        name: 'email',
                        label: 'Email'
                    },
                    {
                        xtype: 'passwordfield',
                        name: 'password',
                        label: 'Password'
                    }
                ]
            },
            {
                xtype: 'button',
                width: '50%',
                text: 'Login',
                ui: 'confirm',
                id: 'btnSubmitLogin'
            },
            {
                xtype: 'toolbar',
                docked: 'top',
                title: 'MyApp Mobile'
            }
        ]
    }
});

和控制器:

Ext.define("MyApp.controller.LoginForm", {
    extend: "Ext.app.Controller",
    config: {
        refs: {
            btnSubmitLogin: "#btnSubmitLogin"
        },
        control: {
            btnSubmitLogin: {
                tap: "onSubmitLogin"
            }
        }
    },
    onSubmitLogin: function () {
        console.log("onSubmitLogin");
        var values = app.views.LoginForm.loginform.getValues();
        TryLogin(values['email'], values['password']);
    },
    launch: function () {
        this.callParent();
        console.log("LoginForm launch");
    },
    init: function () {
        this.callParent();
        console.log("LoginForm init");
    }
});

代码将达到

console.log("onSubmitLogin");

然后停下来。

在发布时我使用这个:

var LoginForm = Ext.create("MyApp.view.LoginForm");
Ext.Viewport.add(LoginForm);

那么,我怎样才能获得价值?

谢谢

好。 经过一些调整后找到了答案。 为了后代 - 这是解决方案:

我已经在LoginForm中添加了id:'loginform' ,然后在'refs'部分的控制器中添加了loginForm: '#loginform' 然后我可以用它作为:

var values = this.getLoginForm().getValues();

祝你们好运

尝试这个

控制器:

Ext.define("mySIMS.controller.LoginForm", {
        extend : "Ext.app.Controller",
        config : {
            refs : {
                btnSubmitLogin : "#btnSubmitLogin",
                LoginForm : '#loginform'
            },
            control : {
                btnSubmitLogin : {
                    tap : "onSubmitLogin"
                }
            }
        },
        onSubmitLogin : function() {
            console.log("onSubmitLogin");
            var values = this.getLoginForm().getValues();
            console.log(values);

            //var values = Oreilly.views.LoginForm.loginform.getValues();

        },
        launch : function() {
            this.callParent();
            console.log("LoginForm launch");
        },
        init : function() {
            this.callParent();
            console.log("LoginForm init");
        }
    });

视图:

Ext.define('mySIMS.view.LoginForm', {
        extend : 'Ext.form.Panel',
        config : {
            id : 'loginform',
            fullscreen : true,
            items : [{
                xtype : 'fieldset',
                title : 'Login',
                items : [{
                    xtype : 'emailfield',
                    name : 'email',
                    label : 'Email'
                }, {
                    xtype : 'passwordfield',
                    name : 'password',
                    label : 'Password'
                }]
            }, {
                xtype : 'button',
                width : '8%',
                text : 'Login',
                ui : 'confirm',
                id : 'btnSubmitLogin'
            }, {
                xtype : 'toolbar',
                docked : 'top',
                title : 'Mobile'
            }]
        }
    });

希望这有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM