loading
반응형

텍스트 필드에 키보드로 입력 시 사용자가 어느 키를 눌렀는지 확인하고 싶을 때 사용하는

이벤트에 대해서 알아보자.

 

▶ keypress 이벤트

keypress(handler)
→ 이 메서드는 키보드로 텍스트 필드에 입력할 때 handler가 실행된다. keydown 이벤트와 차이점 있다.
    아래 설명 참조
$('텍스트필드 선택자').keypress(function(e){
   console.log(e.keyCode);
});

keypress()는 지정한 엘리먼트에 이벤트 핸들러를 연결하여 사용자가 키보드의 키를 누르면 이벤트 핸들러가 실행이 된다. 이 keypress() 메서드는 keydown과 차이점은 특수 키 (Shift, Ctrl, Alt 등등) 특수키는  응답을 안 한다.

 

▶ keydown 이벤트

keydown(handler)
→  이 메서드는 키보드로 텍스트 필드에 입력할 때 handler가 실행된다. keypress 이벤트와 차이점 있다.
     아래 설명 참조
$('텍스트필드 선택자').keydown(function(e){
   console.log(e.keyCode);
});

keydown() 메서드는 키보드를 눌렀을 때 실행된다. keypress() 메서드와 차이점은 특수 키에도 응답을 한다.

 

▶ keyup 이벤트

keyup(handler)
→ 이 메서드는 키보드로 텍스트 필드에 입력 후 키보드에 손을 놓았을 때 handler 가 실행된다.
$('텍스트필드 선택자').keyup(function(e){
   console.log(e.keyCode);
});

keyup() 메서드는 keydown() 메서드와 반대로 키를 눌렀다가 떼었을 때 handler를 호출하기 때문에, 

텍스트 유효성 검사 시 keyup과 keydown 메서드를 이용하면 될 것 같다.

 

 

 

 

테스트 코드

예)

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <script src="https://code.jquery.com/jquery-3.1.0.js"></script>
  <title>JS Bin</title>
  <script>
        $(document).ready(function(){
          $('#input-box-1').keypress(function(e){
              $('#keyValue').text('keypress : '+e.keyCode);
          });
          
          $('#input-box-2').keydown(function(e){
              $('#keyValue').text('keydown : '+e.keyCode);
          });
          
          $('#input-box-3').keyup(function(e){
              $('#keyValue').text('keyup : '+e.keyCode);
          });          
        });    
  </script>
</head>
<body>
  keypress : <input id="input-box-1"><br>
  keydown : <input id="input-box-2"><br>
  keyup : <input id="input-box-3"><br>
  
  누른 키 : <p id="keyValue"></p>
</body>
</html>

 

위 코드로 테스트를 해보면 아래 무엇이 찍히는지 테스트를 진행할 수 있다.

 

반응형

+ Recent posts