2016-07-06 2 views
3

Почему мои ключевые события не работают в следующем примере? Событие «размытие» работает, но ни одно из ключевых событий не работает в моем текстовом поле (я также пробовал «keydown»).Почему мои ключевые события не работают

Я также попытался использовать конструкцию «control» на контроллере, но это тоже не сработает.

Ext.define('Plus.view.MyController', { 
    extend: 'Ext.app.ViewController', 

    alias: 'controller.mycontroller', 
    control: { 
     '#mytextfield': { 
      blur: function() { 
       alert("oink") 
      }, 
      keypress: function() { 
       alert("moo") 
      }, 
      keyup: function() { 
       alert("quack") 
      } 
     } 
    } 
}); 

Ext.define('Plus.view.MainView', { 
    extend: 'Ext.container.Container', 

    items: [{ 
     xtype: 'textfield', 
     id: 'mytextfield', 
     controller: 'mycontroller', 
     listeners: { 
      blur: function() { 
       alert("oink 2") 
      }, 
      keypress : function() { 
       alert("moo 2") 
      }, 
      keyup : function() { 
       alert("quack 2") 
      } 
     } 
    }] 
}); 

Ext.application({ 
    name: 'Plus', 
    autoCreateViewport: 'MainView', 
    launch: function() { 

    } 
}); 

Моя скрипка здесь:

https://fiddle.sencha.com/#fiddle/1d5d

Я пропускаю что-то очевидное?

ответ

6

keypress и keyup Эти события срабатывают только в том случае, если для параметра enableKeyEvents установлено значение true. Установите это, и ваш код будет работать. Я создал fidller для вас, где работает код. Fiddle

+0

поэтому по умолчанию в extJS не работают ключевые события? ...Зачем? ... это кажется таким странным. –

+0

ya В doc они упомянули для всех трех ключевых событий, только после того, как установили true. что это странно. вы можете сообщить sencha. – UDID

+0

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

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