extjs监听键盘事件

使用extjs已经有一段时间了,开始时做了个登录界面,输入用户名,密码 然后点击确定,登录

在extjs中,Button本身是支持回车事件的,前提是:焦点在按钮上,此时回车和单击事件是一回事

鉴于系统的友好性和人们 的习惯,输入两者后会按回车键登录系统

开始时想这个问题了,但是无从下手,因为我一直认为这个应该是在button上监听回车事件,就是输入用户名和密码后按回车键时应该是button来响应该事件。

查了extjs手册Button的事件中没有响应回车键的事件或者是specialkey事件

今天有时间回头想这个问题,其实我的真实想法是在按按钮前来响应回车事件,应该是form的field来响应回车事件 

form中的field事件中有specilkey事件,可以响应回车键:

var siteName = new Ext.form.Field({
            id: 'siteName1',//表单元素最好使用Id,不然在IE浏览器中表单内容将变形
            fieldLabel: '网站名称',
            listeners : {
                specialkey : function(field, e) {
                    if (e.getKey() == Ext.EventObject.ENTER) {
                        alert("回车事件");
                        ...
                    }
                }
            }
        });

所以想到的是在输入用户名,或者密码后点击"回车",让field响应回车事件,然后form提交 

添加事件后测试成功,

当然响应回车键是焦点在用户名或者密码的field 时,按回车才会响应。

回头在163邮箱的登录界面来测试,验证了我的想法,在用户名、密码和登录按钮以外的地方按回车是不会响应该事件的

只有在这三个地方按回车才会响应登录事件

posted @ 2014-04-23 09:19  silence2010  阅读(1059)  评论(0)    收藏  举报