2017-01-20 7 views
1

У меня в настоящее время проблема с Internet Explorer, где при рендеринге текстового поля на странице фокусировка на этом элементе не работает должным образом.Ext JS - Фокус на текстовое поле не работает с прослушивателем рендеринга в IE

В Chrome, когда я фокусируюсь на этом текстовом поле и вводим ярлык для поиска (F2), он ищет сетку. Однако эта функция не работает в IE. Может ли кто-нибудь предложить причину или альтернативный способ работы во всех браузерах? Я не могу использовать компонент KeyMap, поскольку он вызывает проблемы с экраном экрана.

код я использую для ярлыка ниже:

xtype : textField, 
    fieldLabel : 'Name', 
    id : 'customerNameSearch', 
    name : 'customerNameSearch', 
    listeners : { 
     render: function (field) { 
      field.focus(); 
      field.el.dom.onkeydown = function (event) { 
      if(event.code == "F2") { 
      performGridSearch(name) 
      }       
     } 
    } 

Приведенный выше код запускает поиск в сети в Chrome, но по какой-то причине не IE.

+0

Правильно ли вы правильно набираете блоки и закрываете клавиши {}? – levieraf

+0

@levieraf Извинения, мне не хватало фигурной скобки. Я просто скопировал и вставил из своего кода. –

ответ

0

Вы можете использовать ExtJS для прослушивания события keydown и теста для ключа F2 в обработчике событий с использованием e.getKey() или e.getKeyName(). Слушатель будет выглядеть так:

keydown: function (item, e) { 
      if (e.getKey() === e.self.F2) 
       alert(e.getKeyName()); 
     } 

Это должно работать во всех браузерах, поддерживаемых ExtJS, включая IE. Не забудьте установить enableKeyEvents: true в текстовое поле.

Вот fiddle, который работает в Chrome и IE11.

Смежные вопросы