Computer >> 컴퓨터 >  >> 프로그래밍 >> HTML

HTML DOM KeyboardEvent key 속성 – 눌린 키의 식별자 반환하기

KeyboardEvent의 key 속성은 사용자가 입력한 키보드 이벤트에서 눌린 키에 해당하는 키 식별자(key identifier)를 문자열로 반환합니다. 예를 들어 'B' 키를 누르면 'B'라는 값이, Enter 키를 누르면 'Enter'라는 값이 반환됩니다.

구문

key 속성을 사용하는 기본 문법은 다음과 같습니다.

event.key

이 속성은 읽기 전용(read-only)이며, 대소문자를 구분한다는 점에 유의해야 합니다. 즉, Shift 키 상태에 따라 같은 물리적 키라도 다른 값('b' 또는 'B')을 반환할 수 있습니다.

예제

다음은 KeyboardEvent key 속성을 활용한 실전 예제입니다. 사용자가 빈칸 채우기 문제에 정답을 입력하면, key 속성으로 입력된 값을 판별하여 결과를 화면에 표시합니다.

<!DOCTYPE html>
<html>
<head>
<title>KeyboardEvent key</title>
<style>
    form {
        width:70%;
        margin: 0 auto;
        text-align: center;
    }
    * {
        padding: 2px;
        margin:5px;
    }
    input[type="button"] {
        border-radius: 10px;
    }
</style>
</head>
<body>
<form>
<fieldset>
<legend>KeyboardEvent-key</legend>
<label>빈칸을 채워주세요:
<input type="text" id="textSelect" placeholder="__ for Ball" onkeypress="getEventData(event)" autocomplete="off">
</label>
<div id="divDisplay"></div>
</fieldset>
</form>
<script>
    var divDisplay = document.getElementById("divDisplay");
    var textSelect = document.getElementById("textSelect");
    function getEventData(InputEvent) {
        if(InputEvent.key === 'B')
            divDisplay.textContent = '정답입니다!';
        else if(InputEvent.key === 'b')
            divDisplay.textContent = '아깝네요! Caps Lock이 꺼져 있는지 확인해 보세요';
        else
            divDisplay.textContent = '다시 시도하세요, '+textSelect.placeholder;
        textSelect.textContent = '';
    }
</script>
</body>
</html>

출력 결과

위 코드를 실행하면 다음과 같은 결과를 확인할 수 있습니다.

텍스트 필드에 아무것도 입력하지 않은 경우

HTML DOM KeyboardEvent key 속성 – 눌린 키의 식별자 반환하기

텍스트 필드에 소문자 'b'를 입력한 경우 − Caps Lock이 꺼져 있다는 안내 메시지가 표시됩니다.

HTML DOM KeyboardEvent key 속성 – 눌린 키의 식별자 반환하기

텍스트 필드에 대문자 'B'를 입력한 경우 − 정답 처리됩니다.

HTML DOM KeyboardEvent key 속성 – 눌린 키의 식별자 반환하기

참고 사항

key 속성은 keyCode나 which 속성과 달리 브라우저와 운영체제에 관계없이 일관된 문자열 값을 제공하므로, 최신 웹 개발에서 키보드 입력을 처리할 때 권장되는 방식입니다. 특수키(예: 'Shift', 'ArrowUp', 'Escape')도 직관적인 이름으로 반환되어 코드 가독성이 크게 향상됩니다.