2013-06-13 10 views
1

即時通訊有一個小問題,試圖以編程方式找出一個字符的鍵碼值。這是我目前所擁有的。如何找到在javascript中的char的鍵碼值

var delimiter = ','; 

//some where down the page 

control.keyup(function(e) 
{ 
    var key = delimiter .charCodeAt(0); 
    if(e.keycode == key) 
    { 
     //do something 
    } 
} 

所以,當我按下「」鍵盤上的鍵有44的值,而e.keycode是188.如何找出變量分隔符的鍵碼值?

+0

@KevinBowersox當我敲擊鍵盤上的','鍵時,我想讓e.keycode與我的分隔符匹配。 – c11ada

+0

作爲參考,'','(在我的機器上)''keyCode'是'188'。 –

回答

2

keyup事件返回的密鑰代碼不是ASCII代碼。如果切換到keypress事件,則可以檢索ASCII代碼。這應與charCodeAt收到的值相匹配,該值返回字符的Unicode值,該值恰好與前128個字符的ASCII代碼對齊。看到這個reference

var delimiter = ','; 
var key = delimiter.charCodeAt(0); 
document.getElementById("test").onkeypress = function(e){ 
    if((e.keyCode || e.which) == key){ 
     alert("Cat's out of the bag! OHHH YEAH!"); 
    } 
}; 
+0

是不是一個keyCode不同於charCode?那麼如何將'charCodeAt(0)'與'e.keyCode'進行比較? –

+0

@PaulS。它取決於你使用的事件,基本上'charCodeAt'提供ASCII值。然後,keyup和keydown提供了特定於瀏覽器的鍵碼,而keypress則提供了ASCII碼。 –

+2

@ PaulS.this也很有用http://www.asquare.net/javascript/tests/KeyCode.html – c11ada

相關問題