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

HTML DOM InputEvent inputType 속성 – 발생한 입력 이벤트 유형 확인하기

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>

실행 결과

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

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

HTML DOM InputEvent inputType 속성 – 발생한 입력 이벤트 유형 확인하기

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

HTML DOM InputEvent inputType 속성 – 발생한 입력 이벤트 유형 확인하기

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

HTML DOM InputEvent inputType 속성 – 발생한 입력 이벤트 유형 확인하기

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

HTML DOM InputEvent inputType 속성 – 발생한 입력 이벤트 유형 확인하기

정리

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