본문 바로가기

SW/JQUERY

백스페이스 차단(input만 허용 )

// 페이지 백스페이스 차단(text, textarea만 허용) 
document.onkeydown=function() {
    if(event.srcElement.type != "text" && event.srcElement.type != "textarea") {
        if(event.keyCode==8) return false;    
}}
 

// 모든 input 태그에 속성 하나를 를 체크해서 그 조건으로 백스페이스 막기
$("input").each(function(index) {
    if ($(this).attr("속성 이름")) {
        $(this).bind("keydown", function(event) {
            if (event.keyCode == 8)
                return false;
        });
    }
});
 

ex)
history.length가 1인 경우(돌아갈 페이지가 있는경우) readonly 속성이 적용된 input text 에서 마우스를 커서를 놓고
백스페이스를 누르면 앞 페이지로 돌아가는 경우가 발생 >>> 날짜 입력박스를 readonly 해놨는데 거기를 클릭하여 지울려고 할때임.

- 모든 input 태그의 readonly 속성이 포함된 걸 찾아내서 readonly 속성이 있는경우 백스페이스을 차단합니다.
- jQuery의 bind()를 이용해서 해결.

$("input").each(function(index) {
    if ($(this).attr("readonly") || $(this).attr("readonly") == "readonly") {
        $(this).bind("keydown", function(event) {
            if (event.keyCode == 8)
                return false;
        });
    }
});