我正在使用keydown事件keydown事件上的鍵碼
我在哪裏得到鍵碼並將其轉換爲charcode。
但是我有一個問題,鍵盤在哪裏按2
它給50
,並作爲則charCode 2
當我在小鍵盤上按2
它給人的鍵碼98
,所以當我轉換則charCode a
我正在使用keydown事件keydown事件上的鍵碼
我在哪裏得到鍵碼並將其轉換爲charcode。
但是我有一個問題,鍵盤在哪裏按2
它給50
,並作爲則charCode 2
當我在小鍵盤上按2
它給人的鍵碼98
,所以當我轉換則charCode a
你會獲得字符代碼keypress
事件
嘗試了這一點:http://www.w3.org/2002/09/tests/keys.html
他們使用下面的代碼轉換爲CHARAC之三:
var charCode = (evt.charCode) ? evt.charCode : evt.keyCode;
this也可能是有幫助的鍵碼參考
這是發生becau如果您使用的是keyCode
成員,例如,小寫字母'a'和大寫字母'A'具有相同的keyCode,因爲是相同的密鑰,但是不同的charCode,因爲結果字符不同。
要獲得中charCode,你應該使用keypress
事件,如果有得到event.charCode
成員,否則,你得到這對於IE瀏覽器,在按鍵事件有正確信息的event.keyCode
。
給看看以下example:
document.onkeypress = function (e) {
e = e || window.event;
var charCode = e.charCode || e.keyCode,
character = String.fromCharCode(charCode);
alert(character);
};
與此代碼: 當我輸入 「2」,我得到0則charCode; keyCode 50;字符2; 當我輸入Shift-2時,我得到了相同的結果,但在我的文本框中出現了「@」。 onkeypress事件似乎不知道你的Shift鍵是否關閉... – Michiel 2013-02-08 10:23:33
@CMS非常豐富 – Oliver 2015-07-08 07:01:00