2013-11-14 16 views
1

如何限制keydown事件僅在按下某個字符時才生效?我想在鍵盤上按下非字符時跳過代碼,例如主頁按鈕,結束按鈕。將keydown事件僅限於字符

我知道我可以用e.which == someNumber來定位那些按鈕,但是有沒有更好的方法來做到這一點?爲每個非字符按鈕編寫條件似乎不是一個好主意。

謝謝!

+2

爲英文字符只或任何字符? Unicode支持?請詳細說明。 – VisioN

+0

@VisioN任何類型的角色,只要它出現在文本框或其他東西。 – dork

+0

我會把所有「授權」的關鍵代碼放在一個javascript數組中,然後在關鍵的測試中,如果e.which在該數組中。要查看數組,你可以參考[這篇文章](http://stackoverflow.com/questions/143847/best-way-to-find-an-item-in-a-javascript-array) –

回答

0

你必須實施某種形式的範圍檢查。選擇佔用最少編碼量的範圍。你會怎樣描述一個角色?它會是32和125之間的一切嗎?在ascii table上查看您感興趣的範圍。

+0

我猜?所以我可能只寫e.which> 31 && e.which <126?但那些不一樣,對吧?我的意思是e.which == 37到40是方向鍵 – dork

+0

該範圍僅僅是一個例子。你從哪裏看到37到40個箭頭鍵? – theoutlander

+0

我剛剛做了一個console.log(e.which)和37到40是什麼時候按下箭頭 – dork

1

試試這個

$(function() { 
$(document).on('keydown', function (event) { 
    if (event.keyCode == yourkeycode) { 
     //stuff 
    } 
}); 
}); 
+0

如何解決他的問題,如果他還需要檢查個別密鑰?在jquery中的keydown不觸發非ASCII字符? – theoutlander