InputEvent 객체는 폼 요소의 내용이 변경될 때 발생하는 모든 이벤트를 나타냅니다. 사용자가 텍스트 필드에 문자를 입력하거나, 내용을 붙여넣거나, 기존 텍스트를 삭제하는 등의 편집 작업을 수행할 때 input 이벤트와 함께 이 객체가 전달되며, 변경된 내용에 대한 상세 정보를 제공합니다.
주요 속성 및 메서드
InputEvent 객체에서 사용할 수 있는 주요 속성과 메서드는 다음과 같습니다.
| 속성/메서드 | 설명 |
|---|---|
| data | 삽입된 문자에 해당하는 문자열을 반환합니다. |
| dataTransfer | 삽입 또는 삭제된 데이터에 대한 정보를 담고 있는 객체를 반환합니다. |
| getTargetRanges() | 삽입/삭제 작업의 영향을 받게 될 대상 범위(target ranges)를 포함하는 배열을 반환합니다. |
| inputType | 입력 유형(예: insertText, deleteContentBackward 등)을 반환합니다. |
| isComposing | 이벤트가 IME(입력기) 조합 과정 중에 발생했는지 여부를 나타내는 상태 값을 반환합니다. |
예제
다음은 InputEvent의 data 속성을 활용한 예제입니다. 사용자가 입력한 글자를 실시간으로 확인하여 정답 여부를 판별하는 방식으로 동작합니다.
<!DOCTYPE html>
<html>
<head>
<title>InputEvent Data</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-Data</legend>
<label>Fill in the blanks:
<input type="text" id="textSelect" placeholder="__ for Apple" oninput="getEventData(event)">
</label>
<div id="divDisplay"></div>
</fieldset>
</form>
<script>
var divDisplay = document.getElementById("divDisplay");
var textSelect = document.getElementById("textSelect");
function getEventData(InputEvent) {
if(InputEvent.data === 'A')
divDisplay.textContent = 'Correct Answer';
else
divDisplay.textContent = 'Try Again, '+textSelect.placeholder;
textSelect.textContent = '';
}
</script>
</body>
</html>
실행 결과
위 코드를 실행하면 다음과 같은 결과를 확인할 수 있습니다.
텍스트 필드에 아무것도 입력하지 않은 초기 상태:

텍스트 필드에 오답을 입력한 경우:

텍스트 필드에 정답('A')을 입력한 경우:

이처럼 InputEvent 객체의 data 속성을 활용하면 사용자가 입력한 개별 문자를 즉시 감지할 수 있어, 실시간 유효성 검사나 자동완성 기능을 구현할 때 매우 유용합니다.