Не удается получить значения из формы внутри табуляции - PullRequest
0 голосов
/ 31 января 2019

Я не представляю, как получить значения из полей формы.Форма является одним из элементов внутри табуляции.Вызывает консоль следующее:

"Uncaught TypeError: charform.getValues ​​не является функцией"

Я не столкнулся с проблемой, когда я получаю значения из формы, используя это:

var dataupNew = this.up().items.items[0];
var dataSetNew = dataupNew.getValues();  

Вот мой код:

Ext.define('Foresto.view.forms.Cutarea', {
    extend: 'Ext.panel.Panel',
    title: 'Les',
    margin: 5,
    height: 600,
    scrollable: true,
    xtype: 'foresto-cutarea',
    items: [{
        xtype: 'tabpanel',
        cls: 'grbuttons',
        layout: 'card',
        items: [{
            xtype: 'panel',
            cls: 'grbuttons',
            layout: 'vbox',
            title: 'Characteristic',
            items: [{
                xtype: 'selectfield',
                label: 'number'
            }, {
                xtype: 'textfield',
                label: 'tract'
            }, {
                xtype: 'selectfield',
                label: 'task',
                name: 'targetUsing'
            }, {
                xtype: 'button',
                text: 'save',
                cls: 'grbuttons',
                margin: 10,
                ui: 'confirm',
                handler: function () {
                    var charform = this.up('panel');
                    var charSet = charform.getValues();

                    Ext.Ajax.request({
                        url: '/api/characteristic/',
                        method: 'POST',
                        params: charSet
                    });
                }
            }]
        }]
    }]
});

Я хочу, чтобы этот обработчик сделал запрос POST.Но теперь у меня есть это:

Uncaught TypeError: charform.getValues ​​не является функцией

1 Ответ

0 голосов
/ 07 февраля 2019

Сначала вам нужно использовать this.up ('панель'), чтобы попасть в область действия табуляции, затем вам нужен this.up ('форма'), чтобы получить реальную форму, наконец, вы можете получить свои значения

Проверьте этот рабочий пример Extjs Fiddle

Ext.application({
    name: 'Fiddle',

    launch: function () {
        Ext.create('Ext.form.Panel', {
            title: 'Les',
            margin: 5,
            height: 600,
            renderTo:Ext.getBody(),
            scrollable: true,
            items: [{
                xtype: 'tabpanel',
                layout: 'card',
                items: [{
                    xtype: 'panel',
                    layout: 'vbox',
                    title: 'Characteristic',
                    items: [ {
                        xtype: 'textfield',
                        label: 'tract'
                    }, {
                        xtype: 'button',
                        text: 'save',
                        margin: 10,
                        handler: function () {
                            var charpanel = this.up('panel');
                            var charform = charpanel.up('form');
                            var charSet = charform.getValues();

                            Ext.Ajax.request({
                                url: '/api/characteristic/',
                                method: 'POST',
                                params: charSet
                            });
                        }
                    }]
                }]
            }]
        });
    }
});
...