getValue не определено в приложении Sencha Touch - PullRequest
0 голосов
/ 30 января 2012

Новое в сенча коснитесь здесь. Я проверил довольно много уроков онлайн. У меня возникла проблема при попытке получить значение текстового поля. Ошибка, которую я получаю, когда я нажимаю кнопку входа в систему, 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. Итак, я предполагаю, что мой вопрос сейчас, я должен получить значение на основе id или name?

1 Ответ

1 голос
/ 30 января 2012

Используя Ext.getCmp(), вы должны указать ID элемента, значение которого вы хотите.См. Документацию Sencha API:

getCmp (String id) Это краткая ссылка на Ext.ComponentManager.get.Поиск существующего Компонента по id. Параметры id: String Идентификатор компонента

Вы также можете найти элемент по имени, но я думаю, что он быстрее по идентификатору, но, возможно, также немного дороже для движка браузера.,На самом деле ничего не могу сказать об этом.

В любом случае, поиск поля по имени возможен с помощью метода findField().С помощью этого метода вы должны указать идентификатор или имя поля, которое вы хотите.См. Документ API: http://docs.sencha.com/ext-js/4-0/#!/api/Ext.form.Basic-method-findField

Пример:

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