ExtJS 4: проблема с использованием ввода текста на панели инструментов (думаю, focusmanager) - PullRequest
2 голосов
/ 25 июня 2011

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

У меня есть панель с панелью инструментов На панели инструментов есть 3 элемента (кнопка,Textfield, Button) Это работает нормально, я могу нажимать кнопки, я не могу писать, редактировать и т. Д. В текстовом поле ...

Но если я изменяю на: Кнопка, компонент, кнопка И в компонентеЯ пишу HTML: ''

Менеджер фокуса (может быть, что-то еще ...) начинает ... ну ... не очень хорошо с этим вводом текста, я могу написать ... но я могуне нажимайте клавишу Backspace, если я это сделаю, ничего не происходит, и я не могу нажимать клавиши со стрелками ....

Есть ли способ подавить диспетчер фокуса только при вводе текста ???или ко всей панели инструментов (мне это не нужно)

Я пробовал "Ext.FocusManager.disable ()", но это не работает (также Ext.FocusManager.enabled возвращает false... так что, возможно, это не совсем ошибка диспетчера фокусировки)

Я сузил проблему до панели инструментов ... Я создал текстовый ввод в другом месте, и все клавиши работают ...Я переместил тот же самый ввод (используя jquery) на панель инструментов ... и клавиши возврата и стрелки перестали работать ... если я переместил его, клавиши снова начали работать: S

Мне нужно, чтобы это быловвод текста, потому что я планирую использовать плагин jQuery, который скрывает текущий ввод и заменяет его другим вводом ... так что вы видите ... даже если я использую текстовое поле, текстовое поле будет скрыто, а ввод текста замененэто без функциональности Backspace и клавиш со стрелками

Любая помощь будет принята с благодарностью

С уважением !!!!!!!!

1 Ответ

1 голос
/ 26 июня 2011

ок ....

При использовании xtype: 'textfield' было что-то странное для меня .... Ext.FocusManager.enabled возвращает false ....

Если ясделать Ext.FocusManager.enable ();и после этого Ext.FocusManager.disable ();Даже xtype: 'textfield' перестает работать с клавишами возврата и возврата: O

Так что я думаю, что FocusManager есть чем заняться ....

В любом случае, я временно решил свою проблему: P

Я оставил компонент как текстовое поле

        {
            xtype: 'textfield',
            name: 'emailsi',
            id: 'emailsi',
            labelStyle: 'width: auto',
            labelWidth: 120,
            width: 500,
            fieldLabel: idioma.personasInvolucradas
        }

И когда ввод текста создается с помощью jquery, он применяет display: none к предыдущему текстовому полю. Итак ... Я восстанавливаю display:block итакже примените position: absolute; float: right; z-index: -1;, чтобы он снова скрылся и не мешал разметке: P

И, наконец, для восстановления функциональности клавиш Backspace и Left / Right Arrow Keys ........

Я создаю событие .focus() в jQuery, например:

                $('.textboxlist-bit-editable-input').focus(function(){
                    $('#emailsi>div>input').css({display: 'block', 'z-index': '-2', position: 'absolute', float: 'right'});
                    Ext.getCmp('emailsi').focus();
                });

По сути, я обнаружил, что, пока исходное текстовое поле имеет фокус, я могу нажимать клавишу Backspace при вводе текста:) (также там, где я применяю css, сначала это было за пределами события фокуса, но когда панель инструментов перекрашивается, текстовое поле возвращается к отображению: нет)

Если у кого-то есть лучшее решение, оно будетбыть очень желанным: D

Привет !!

...