Как отобразить всплывающее окно рядом с текстовым полем в Ext js

Я хочу отображать всплывающее окно (с сообщением) рядом с текстовым полем, когда пользователь нажимает на текстовое поле с помощью Ext JS. Может ли кто-нибудь помочь мне в этом?

Для авторских прав я удалил текст.

Как отобразить всплывающее окно рядом с текстовым полем в Ext js

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
49
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны добавить слушателей focus и blur в текстовое поле.

Внутри события focus первым аргументом является текстовое поле. Текст, который вы добавляете в окно, находится внутри textfield.popupText.

ПРИМЕР

    xtype: 'textfield',

    popup: null,
    popupText: 'Testing Popup Text',

    listeners: {
        focus: function(field) {
            field.suspendEvent('blur');
            field.suspendEvent('focus');

            field.popup = field.popup || Ext.create({
                xtype: 'window',
                ownerCt: field,
                height: 80,
                width: 200,
                html: field.popupText
            });
            
            field.popup.showBy(field.el, 'l-r')

            field.focus();
            field.resumeEvent('blur');
            field.resumeEvent('focus')
        },
        blur: function(field) {
            field.popup.destroy();
        }

Привет, @Dinkheller, спасибо за ваш ответ, однако он дает мне ошибку времени выполнения, говорящую «libs.js: 3 Uncaught TypeError: Cannot read properties of undefined (чтение« подстроки »)», когда он пытается создать всплывающее окно.

Ripal 20.03.2022 22:41

Привет, @Dinkheller, сработало, спасибо. Пришлось немного изменить код. Вместо Ext.create({}) мне пришлось создать его с помощью Ext.create('Ext.window.Window',{})

Ripal 21.03.2022 04:20

Привет, @Dinkheller, когда я нажимаю на текстовое поле, он немедленно вызывает событие размытия и уничтожает мое всплывающее окно. Что я могу сделать, чтобы уничтожить всплывающее окно, когда кто-то щелкает за пределами текстового поля?

Ripal 29.03.2022 04:49

Привет, Рипал. Он всегда должен размываться, когда вы покидаете текстовое поле. Если это не так, вы можете добавить логику прослушивателя в контроллер и сохранить _popup для всех полей (за раз может быть только одно). В контроллере вы слушаете щелчок по Ext.getBody() и по щелчку уничтожаете _popup. Но опять же, это не должно быть необходимо.

Dinkheller 29.03.2022 12:02

Если вы настроите скрипку, я могу заполнить остальное.

Dinkheller 29.03.2022 12:03

Другие вопросы по теме