2014-12-05 217 views
1

你好,我想按键盘上的事件在键盘上输入。我这样做:按键导航,按键盘上的事件输入键盘上的输入

listeners: { 
    afterRender: function (thisForm, options) { 
     this.keyMap = Ext.create(
      'Ext.util.KeyMap', 
      this.el, 
      [ 
       { 
        key: 13, 
        fn: this.submitOnEnter, 
        scope: this 
       } 
      ] 
     ); 
    } 
}, 

submitOnEnter: function (e) { 
    if (e === 13) { 
     console.log('some event there!!!') 
    } 

}, 

但是当我按下回车没有任何反应。

+0

你是否试图将Keylistener添加到窗体或窗体域?你使用的是什么版本的ExtJS?多一点的代码会有所帮助。 – 2014-12-05 19:08:25

+0

我使用分机4.2.1 – user3045654 2014-12-08 12:00:55

回答

2

如果它是一个文本框或组合框或触发或东西,你可以尝试添加一个侦听specialkey:

 listeners:{ 
      specialkey: function(f,e){ 
       if(e.getKey()==e.ENTER){ 
        console.log("I hit enter!"); 
       } 
      } 
     }, 

如果只是打输入窗口上的任何地方,然后我没有那么肯定。类似的东西可能会起作用。

+0

是的,我需要听众在窗口上的任何地方 – user3045654 2014-12-08 11:57:27

+0

看看这家伙的解决方案: http://existdissolve.com/2011/08/extjs-4-adding-an-app-wide-keystroke -shpping/ 他使用S键,但可以将其更改为ENTER的编号。他也有“ctrl:true”,这意味着你必须按Ctrl S.删除,如果你不想要它。 我把我的主应用程序的“init”函数中他的“启动”部分的代码。 – 2014-12-08 17:18:19