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

HTML DOM InputEvent 객체 완벽 정리 – 주요 속성과 실전 예제

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>

실행 결과

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

텍스트 필드에 아무것도 입력하지 않은 초기 상태:

HTML DOM InputEvent 객체 완벽 정리 – 주요 속성과 실전 예제

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

HTML DOM InputEvent 객체 완벽 정리 – 주요 속성과 실전 예제

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

HTML DOM InputEvent 객체 완벽 정리 – 주요 속성과 실전 예제

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