본문 바로가기
코드 간편모음

keydown, keyup [event.which & event.shiftKey & event.keyCode]

by 찬찬2 2021. 1. 8.

** keypress( ), keydown( )의 다른점? 그 외 key관련 이벤트함수 알아두기

** event.which, event.keyCode의 다른점?

which는 제이쿼리에서 keyCode의 역할이다.

[input] 전화번호 다음칸으로 자동 넘김

방법1 : event.which & keyCode로 키보드 키값 확인 -> 특정 키값들을 활용 [keypress, keydown] "눌렀을때"

   -사용: 오로지 숫자 또는 한글 또는 영문만 제어 가능.

방법2 : 정규실을 사용 [keyup]

  -단점: 작동은 잘될 수 있으나 keyup 이벤트 효과로 첫 글자는 나올 수 있다. 

    

<input type="text" name="callno1" class="inputs" id="" maxlength="3" size="3" title="휴대폰첫째자리" style="width:53px; height:25px;" required>

    <input type="text" name="callno2" class="inputs" id="" maxlength="4" size="4" title="휴대폰중간자리" style="width:53px; height:25px;"  required>

    <input type="text" name="callno3" class="inputs" id="" maxlength="4" size="4" title="휴대폰끝자리" style="width:53px; height:25px;"  required>

    

 

<script>

        $(function() {

            $(".inputs").keydown(function(e) {

                var charLimit = $(this).attr("maxlength");

                var keys = [8, 9, /*16, 17, 18,*/ 19, 20, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 144, 145];

 

                if (e.which == 8 && this.value.length == 0) {

                    $(this).prev('.inputs').focus();

                } else if ($.inArray(e.which, keys) >= 0) {

                    return true;

                } else if (this.value.length >= charLimit) {

                    $(this).next('.inputs').focus();

                    return false;

                } else if (e.shiftKey || e.which <= 47 || e.which >= 106) {

                    return false; // 특수문자 입력 방지 + 특수키 방지

                } else if (e.shiftKey || (e.which >= 58 && e.which <= 95)) {

                    return false; // 특수문자 입력 방지 + 알파벳(대/소) 입력 방지

                }

            })

            .keyup (function () {

                var charLimit = $(this).attr("maxlength");

                if (this.value.length >= charLimit) {

                    $(this).next('.inputs').focus();

                    return false;

                }

            });

        });

    </script>

event shiftKey: 키보드 키 중 shift를 누르고 안누르고를 true 또는 false로 반환해준다.

** 위와 같은 상황에서는 input에 특수문자가 들어오지 못하게 하기 위해 사용됬다.

 

javaScript event which 코드표:

m.blog.naver.com/PostView.nhn?blogId=mu_kk&logNo=220441960242&proxyReferer=https:%2F%2Fwww.google.com%2F

            

 

$("#kor_name").keypress(function(e){

                // 숫자 + 알파벳 방지 (48 ~ 90)

                if(e.which > 48 || e.which <= 90){

                    return false;

                }else if(e.shiftKey || e.altKey){

                    return false;

                }

            })

댓글