HTML DOM InputEvent 객체의 inputType 속성은 발생한 입력 이벤트의 유형을 문자열로 반환합니다. 이 속성을 활용하면 사용자가 텍스트를 타이핑했는지, 백스페이스나 Delete 키로 삭제했는지, 혹은 붙여넣기 같은 다른 작업을 수행했는지 정확하게 판별할 수 있습니다.
문법(Syntax)
inputType 속성의 기본 문법은 다음과 같습니다.
event.inputType
이 속성은 읽기 전용(read-only)이며, 해당 이벤트가 어떤 종류의 입력 동작에 의해 트리거되었는지 나타내는 문자열 값을 반환합니다.
주요 반환 값
inputType 속성이 반환할 수 있는 대표적인 값들은 다음과 같습니다.
- insertText : 일반 텍스트 입력(타이핑)
- deleteContentBackward : 백스페이스 키로 커서 앞의 내용 삭제
- deleteContentForward : Delete 키로 커서 뒤의 내용 삭제
- insertFromPaste : 클립보드에서 붙여넣기
- insertLineBreak / insertParagraph : 줄바꿈 삽입
- formatBold, formatItalic 등 : 서식 변경 작업
예제
다음은 InputEvent inputType 속성의 실제 동작을 보여주는 예제입니다. 텍스트 필드에서 발생하는 입력 이벤트의 유형에 따라 화면에 다른 메시지를 출력합니다.
<!DOCTYPE html>
<html>
<head>
<title>InputEvent inputType</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>InputEvent-inputType</legend>
<label>Action teller:
<input type="text" id="textSelect" oninput="getEventInputType(event)">
</label>
<div id="divDisplay"></div>
</fieldset>
</form>
<script>
var divDisplay = document.getElementById("divDisplay");
var textSelect = document.getElementById("textSelect");
function getEventInputType(InputEvent) {
if(InputEvent.inputType === 'insertText')
divDisplay.textContent = 'You are typing: '+textSelect.value;
else if(InputEvent.inputType === 'deleteContentBackward')
divDisplay.textContent = 'You are using backspace key';
else if(InputEvent.inputType === 'deleteContentForward')
divDisplay.textContent = 'You are using delete key';
else
divDisplay.textContent = 'You are sitting idle, do something';
}
</script>
</body>
</html>
실행 결과
위 코드를 실행하면 다음과 같은 결과를 확인할 수 있습니다.
텍스트 필드에 아무것도 입력하지 않은 상태 −

텍스트 필드에 입력 중일 때(inputType 값이 'insertText') −

텍스트 필드에서 백스페이스 키를 눌렀을 때(inputType 값이 'deleteContentBackward') −

텍스트 필드에서 Delete 키를 눌렀을 때(inputType 값이 'deleteContentForward') −

정리
InputEvent의 inputType 속성은 oninput 이벤트 핸들러와 함께 사용하면 강력한 효과를 발휘합니다. 예를 들어 실시간 검색창 유효성 검사, 자동 저장 기능, 입력 로그 분석 등에서 사용자의 입력 방식을 세밀하게 구분해야 할 때 유용하게 활용할 수 있습니다. 단, 일부 오래된 브라우저에서는 지원되지 않을 수 있으므로 필요하다면 브라우저 호환성을 먼저 확인하는 것이 좋습니다.