Nano Hash - криптовалюты, майнинг, программирование

Ext.getCmp не определено

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

initComponent: function() {
    this.items = [
        {
            xtype: 'form',
            padding: '5 5 0 5',
            border: false,
            style: 'background-color: #fff;',

            fieldDefaults: {
                anchor: '100%',
                labelAlign: 'left',
                allowBlank: false,
                combineErrors: true,
                msgTarget: 'side'
            },

            items: [
                {
                    xtype: 'textfield',
                    name : 'id',
                    fieldLabel: 'id',
                    hidden:true
                },    
                {
                    xtype: 'textfield',
                    name : 'name',
                    id : 'idname',
                    fieldLabel: 'Name',
                    allowBlank:false,
                    blankText:'Name is required'
                },
                {
                    xtype: 'textfield',
                    name : 'accno',
                    maxLength: 16,
                    enforceMaxLength : true,
                    regex: /^.{16}$/,
                    regexText:'Only 16 Digits please',
                    //autoCreate: {tag: 'input', type: 'text', size: '20', autocomplete: 'off', maxlength: '10'},
                    fieldLabel: 'AccNo'
                },
                {
                    xtype: 'textfield',
                    name : 'trade',
                    fieldLabel: 'Trade'
                },
                {
                    xtype: 'datefield',
                    name : 'doi',
                    fieldLabel: 'Date Of Insurance',
                    editable: false,
                    value : new Date()
                },
                {
                    xtype: 'datefield',
                    name : 'dd',
                    fieldLabel: 'Due Date',
                    editable:false,
                    value : new Date()
                }
            ]
        }
    ];

    this.dockedItems = [{
        xtype: 'toolbar',
        dock: 'bottom',
        id:'buttons',
        ui: 'footer',
        items: ['->', {
            iconCls: 'icon-save',
            itemId: 'save',
            text: 'Save',
            handler: function (button) {
                Ext.Msg.alert('You clicked the button');
                var txt = Ext.getCmp('idname').value();
                //var tf = button.up('window').down('#idname');

                Ext.Msg.alert(txt);

            }, 
            action: 'save'
        },{
            iconCls: 'icon-reset',
            text: 'Cancel',
            scope: this,
            handler: this.close
        }]
    }];

    this.callParent(arguments);
}

});

18.02.2014

  • вы можете попробовать getValue() вместо value(), это решит проблему? 19.02.2014
  • @weeksdev Пробовал, но все равно получаю ту же ошибку TypeError: Ext.getCmp(...) is undefined 19.02.2014

Ответы:


1

Я бы попробовал метод Ext.ComponentQuery.query

на вашей кнопке, чтобы проверить

    xtype: 'toolbar',
    dock: 'bottom',
    id:'buttons',
    ui: 'footer',
    items: ['->', {
        iconCls: 'icon-save',
        itemId: 'save',
        text: 'Save', 
        scope:this,
        handler: function (button) {
            Ext.Msg.alert('You clicked the button');
            var txtfield = this.query('#idname');
            var txt = txfield.getValue();
            Ext.Msg.alert(txt);

        }, 
        action: 'save'
    }
20.02.2014
  • Попробовал ваше решение, но я получаю эту ошибку TypeError: this.query не является функцией (моя версия Ext — 4.0.0) 20.02.2014
  • Думаю, мне следует спросить, какой класс вы расширяете в этом? 20.02.2014
  • Хм... в документации показано, что это должно работать. Просто чтобы дважды проверить, добавляете ли вы правильную область действия в обработчик? Если бы вы могли либо распечатать его на консоли, либо поставить точку останова, чтобы увидеть контекст вызова 21.02.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..