我無法在任何地方找到它。我想找到最好的方法來檢查鍵擊是否實際上是一個字符。Extjs監聽器按鍵檢查是否有任何字符
listeners:{
'keyup':function(f, e){
//Is key a letter/character
}
}
編輯
謝謝大家誰已經回答了,我知道如何檢測按下的實際關鍵,我想知道如何檢測鍵是否實際上是一個字符(不是箭,退格,輸入等)
我無法在任何地方找到它。我想找到最好的方法來檢查鍵擊是否實際上是一個字符。Extjs監聽器按鍵檢查是否有任何字符
listeners:{
'keyup':function(f, e){
//Is key a letter/character
}
}
編輯
謝謝大家誰已經回答了,我知道如何檢測按下的實際關鍵,我想知道如何檢測鍵是否實際上是一個字符(不是箭,退格,輸入等)
您需要捕獲發送到事件的參數。然後評估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提供了一些用於檢查特殊鍵的靜態變量。
要捕獲鍵盤事件,必須將組件上的enableKeyEvents
屬性設置爲true
。
...,
enableKeyEvents: true,
listeners:{
'keyup': function(f, e){
var charCode = e.getCharCode();
var key = e.getKey();
}
},
...
見 「Detecting keystrokes」 爲差的鍵代碼和則charCode之間的描述。
感謝您的答案,我能夠得到的關鍵和charcode,但我想檢查它是否是一個字符,任何字符... – neolaser 2011-04-05 23:30:57
你不能(可靠地)獲取有關輸入字符的信息來自'keyup'或'keydown'事件。它必須是「按鍵」。 – 2011-04-06 13:43:40
從keyup
或事件中無法分辨鍵擊是否產生了字符。唯一可以做到的事情是keypress
。即使如此,由於行爲不一致,在某些瀏覽器中檢測也很棘手。請參閱下面的「3.2。字符事件返回的值」一節:http://unixpapa.com/js/key.html
我能夠使用這些方法(更新問題的參數),但我不確定如何檢查它的任何字符而不必循環。 .. – neolaser 2011-04-05 23:33:33
我更新了我的答案。不需要執行循環 - 只需執行上述的範圍比較即可。 – Tommi 2011-04-06 06:34:03
感謝您的答案 – neolaser 2011-04-13 04:09:03