在Sencha Touch中未定义getValue

时间:2012-01-30 18:44:27

标签: sencha-touch extjs undefined

在这里触摸新手。我在网上查了不少教程。我在尝试获取文本字段的值时遇到问题。单击登录按钮时出现的错误是Uncaught TypeError: Cannot call method 'getValue' of undefined。这是否意味着我的Ext.getCmp未定义?我将此面板包含在常规Ext.setup....onReady:.....

var login = new Ext.Panel({
    height:'auto',
    scroll:'vertical',
    layout:{
        type:'vbox',
        align:'center'
    },
    items:[
        {
            cls:'launchscreen',
            html:logo,
            padding:10
        },
        new Ext.form.FormPanel({
            width:300,
            cls:'loginform',
            items:[
                {
                    xtype: 'fieldset',
                    title: 'Login',
                    items: [
                        {
                            xtype: 'textfield',
                            name : 'username',
                            label: 'Username',
                            labelWidth: 85
                        },
                        {
                            xtype: 'passwordfield',
                            name : 'password',
                            label: 'Password',
                            labelWidth: 85
                        }
                    ]
                },
                {
                    xtype: 'button',
                    text: 'Submit',
                    ui: 'confirm',
                    handler:function()
                    {
                        alert(Ext.getCmp('username').getValue());
                    }
                }
            ]
        })
    ]
});

编辑:如果我在文本字段中设置id属性,我就能获得该值。我已经看到了一些未设置id的示例,它们根据name属性获取值。所以我想我现在的问题是我应该根据idname获得价值吗?

1 个答案:

答案 0 :(得分:1)

使用Ext.getCmp()您必须提供所需值的元素的 ID 。请参阅Sencha API文档:

getCmp(String id) 这是Ext.ComponentManager.get的简写参考。按ID查找现有组件 参数 id:String 组件ID

您也可以按名称查找元素,但我认为ID更快,但浏览器的引擎可能也有点贵。真的不能说出来。

无论如何,使用findField()方法可以按名称查找字段。使用此方法,您应该提供所需字段的 ID或名称。请参阅API文档:http://docs.sencha.com/ext-js/4-0/#!/api/Ext.form.Basic-method-findField

示例:

var fieldValue= Ext.getCmp("YourFormID").getForm().findField("FieldName").getValue();