본문 바로가기

공부방/JavaScript

keyboard events: keyCode

자바스크립트로 키보드 이벤트 발생 시의 keycode를 확인하는 방법은:

<form>
  <input type="text" name="title"/>
</form>
 
<script>
  document.getElementsByName("title")[0].onkeydown = function(event) { 
    console.log('keydown - keyCode : ' + event.keyCode);
    console.log('keydown - which : ' + event.which);
  };
    
  document.getElementsByName("title")[0].onkeypress = function(event) { 
    console.log('keypress - keyCode : ' + event.keyCode);
    console.log('keypress - which : ' + event.which);
  };
</script>
cs
<script>
  function keycheck(event){
    var keyCode = event.keyCode ? event.keyCode : event.which;
    // keyCode가 0이면 which 리턴
    
    // 혹은
    keyCode = event.keyCode || which;
 
    console.log(keyCode);
  }
</script>
 
<input type="text" onkeypress="keycheck(event)"/>
cs

파이어폭스는 keypress 이벤트 시 event.keyCode로 0을 리턴하기 때문에 event.which에서 받아와야한다. 이 외에도 크롬에서는 키보드 function 키가 (F1, F2...) keypress 시 키값을 받을 수 없다던지... 등의 문제가 있으니 이벤트 객체가 각 브라우저별로 입력된 키값을 어떤 방식으로 처리하는지 반드시 확인할 필요가 있다.

참고로 jQuery는 다음처럼 확인한다:

$('input').on('keydown'function(event) {
    console.log(event.keyCode);
});
cs


KeyCode Reference Table

표 출처 - https://lael.be/55

※ keydown 이벤트 발생 시의 keyCode이며 keypress의 경우 얻는 값이 다를 수 있으니 주의할 것.

0 10 20Caps Lock30 40Arrow Down
1 11 21 31 41 
2 12 22 32 42 
3 13Enter23 33Page Up43 
4 14 24 34Page Down44 
5 15 25 35End45Insert
6 16Shift26 36Home46Delete
7 17Ctrl27Esc37Arrow Left47 
8Backspace18Alt28 38Arrow Up480
9Tab19Pause/Break29 39Arrow Right491
 
50260 70f80p90z
51361=+71g81q91Windows
52462 72h82r92 
53563 73i83s93Right Click
54664 74j84t94 
55765a75k85u95 
56866b76l86v960 (Num Lock)
57967c77m87w971 (Num Lock)
58 68d78n88x982 (Num Lock)
59;:69e79o89y993 (Num Lock)
1004 (Num Lock)110. (Num Lock)120F9130 140 
1015 (Num Lock)111/ (Num Lock)121F10131 141 
1026 (Num Lock)112F1122F11132 142 
1037 (Num Lock)113F2123F12133 143 
1048 (Num Lock)114F3124 134 144Num Lock
1059 (Num Lock)115F4125 135 145Scroll Lock
106* (Num Lock)116F5126 136 146 
107+ (Num Lock)117F6127 137 147 
108 118F7128 138 148 
109- (Num Lock)119F8129 139 149 
150 160 170 180 190.>
151 161 171 181 191/?
152 162 172 182My Computer192`~
153 163 173 183My Calculator193 
154 164 174 184 194 
155 165 175 185 195 
156 166 176 186 196 
157 167 177 187 197 
158 168 178 188,<198 
159 169 179 189 199 
200 210 220\|230 240 
201 211 221]}231 241 
202 212 222'"232 242 
203 213 223 233 243 
204 214 224 234 244 
205 215 225 235 245 
206 216 226 236 246 
207 217 227 227 227 
208 218 228 238 248 
209 219[{229 239 249 


출처 : http://noritersand.tistory.com/224