강좌 & 팁
[JQuery] keyboard Event
지난번 살펴봤던 마우스 이벤트과 유사하게 키보드 이벤트를 받아서 사용할 수 있습니다. 기존에 Javascript에서 많이 사용하던 기능으로 JQuery 와 사용할 때 크게 다르지 않습니다.
Javascript 에서는 document.onkeydown 으로 항상 키 입력을 받게 설정한 다음, 함수와 연결하는 구조로 사용하였습니다.
<script>
아래와 같이 항상 키 입력을 받는 상태에서 키 이벤트(116번) 이 들어왔을 때, 특정한 동작을 수행하라는 함수과 같이 사용되었습니다. (참고로 키 116번은 F5 키를 가리킵니다.)
function eventKeydown() {
1. 샘플 예제
테스트를 하기 위해 아래와 같이 예제를 만들었습니다.
<html>
2. keydown
html 엘리멘트 중에 입력을 받을 일이 있을 때 input을 사용합니다.
<input id="target" type="text" />
위의 input 안에서 키 이벤트가 발생할 때 아래와 같이 작성해주면 됩니다.
$('#target').keydown(function() {
위에서는 단순하게 경고창만 띄웠지만, input 안에 길이를 체크해서 내용이 비었을 때, 경고창을 띄우는 형식으로 바꿔줄 수 있습니다.
3. keypress()
keydown()이 키를 누르는 것을 나타낸다면, 실제 어떤 키가 눌렸는지에 관한 키보드 이벤트는 keypress()를 사용합니다.
keypress는 키보드 입력을 감지하고 주기적으로 확인을 할 수 있습니다. 글자가 입력되거나 움직일 때마다 이벤트가 발생합니다.
예를 들어 숫자만 입력해야하는 입력란에서 문자가 들어왔을 때, 경고나 입력되지 않게 할 수 있습니다.
$('#target').keypress(function() {
4. keyup()
keydown() 이 처음 키를 누르는 시작이고, keypress()가 중간중간 체크를 하는 것이면 keyup()는 키를 눌렀다가 뗀 마지막 상태를 나타냅니다.
$('#target').keyup(function() {
위의 keydown에서 예로 설명드렸던, 빈칸 체크등은 keyup에서 구현하는게 더 좋을거 같습니다.
^ㅇ^!!!
요즘에 키보드 이벤트가 가장 많이 사용되는 곳은 회원 가입 항목에서 많이 볼 수 있을거 같습니다.
참고로 누르는 키에 대한 정보를 알고자 한다면 아래와 같이 확인할 수 있습니다.
console.log(event.keyIdentifier);
크롬 브라우저를 통해서 console.log() 메시지를 통해 주로 확인하는 편입니다.
|