2013-06-13 8 views
1

메신저에 약간의 문제가 있습니다. 프로그래밍 방식으로 char의 keycode 값을 찾으려고 시도합니다. 이것은 내가 지금 가지고있는 것입니다. 나는 키보드의 키에이 ','e.keycode는 동안 44의 값이 누를 때javascript에서 char의 keycode 값을 찾는 방법

var delimiter = ','; 

//some where down the page 

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

그래서 188 어떻게 변수 구분의 키 코드 값을 찾는 방법은?

+0

@KevinBowersox 키보드의 ','키를 눌렀을 때 e.keycode가 내 구분 기호와 일치하도록하고 싶습니다. – c11ada

+0

참고로, (내 컴퓨터의)','의'keyCode'는'188'입니다. –

답변

2

keyup 이벤트는 ASCII 코드가 아닌 키 코드를 반환합니다. keypress 이벤트로 전환하면 ASCII 코드를 확인할 수 있습니다. 이 값은 문자의 유니 코드 값을 반환하는 charCodeAt에 의해 수신 된 값과 일치해야합니다.이 값은 처음 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 값을 제공합니다. 그런 다음 keypress는 ASCII를 제공하는 반면 keyup 및 keydown은 브라우저 고유의 키 코드를 제공합니다. –

+2

@ PaulS.this 역시 유용했습니다. http://www.asquare.net/javascript/tests/KeyCode.html – c11ada