我似乎在任何地方都找不到。我想找到检查击键是否为字符的最佳方法。
listeners:{
'keyup':function(f, e){
//Is key a letter/character
}
}
编辑
感谢所有回答的人,我知道如何检测实际按下的键,但我想知道如何检测按下的键是否是字符(而不是箭头、退格、回车等)。
我似乎在任何地方都找不到。我想找到检查击键是否为字符的最佳方法。
listeners:{
'keyup':function(f, e){
//Is key a letter/character
}
}
编辑
感谢所有回答的人,我知道如何检测实际按下的键,但我想知道如何检测按下的键是否是字符(而不是箭头、退格、回车等)。
enableKeyEvents
属性设置为true
。...,
enableKeyEvents: true,
listeners:{
'keyup': function(f, e){
var charCode = e.getCharCode();
var key = e.getKey();
}
},
...
参见 "检测按键",了解keyCode和charCode之间的区别。
你需要捕获发送到事件的参数。然后评估 event.getKey()
:
listeners:{
'keyup':function(field, event){
if(event.getKey() >= 65 && event.getKey() <= 90) {
//the key was A-Z
}
if(event.getKey() >= 97 && event.getKey() <= 122) {
//the key was a-z
}
}
}
您需要为事件设置正确的参数。
'keyup': {
fn: function(field,event) {
//use event.getKey() to get the key
}
}
第一个参数是字段(表单元素),第二个参数是事件对象。您可以使用事件对象获取按键详细信息。根据您的需求使用getKey()
或getCharCode()
方法。
getKey
方法返回数字代码。您需要比较范围(a=65&z=90),以检查所按下的键是否为字符。Ext JS提供了一些静态变量来检查特殊键。
从 keyup
或 keydown
事件中无法判断按键是否产生了字符。唯一能够做到这一点的事件是 keypress
。即使如此,在某些浏览器中,由于不一致的行为,检测起来仍然相当棘手。请参阅以下页面上的“3.2. 字符事件返回的值”部分:http://unixpapa.com/js/key.html
keyup
或keydown
事件中获取有关键入字符的信息。它必须是keypress
。 - Tim Down