자바 스크립트(java script)

이벤트 리스너 예시 문제 풀이

lamarcK 2025. 3. 21. 22:04

문제:

다음 HTML 코드와 JavaScript 코드를 보고, 입력 필드에 텍스트를 입력하고 "확인" 버튼을 클릭했을 때 어떤 일이 발생하는지 설명하고, 코드를 개선할 수 있는 부분을 찾아 설명하세요.

HTML 코드:

<!DOCTYPE html>
<html>
<head>
  <title>이벤트 학습 문제</title>
</head>
<body>
  <input type="text" id="myInput">
  <button id="checkButton">확인</button>
  <p id="result"></p>
  <script src="script.js"></script>
</body>
</html>

JavaScript 코드 (script.js):

const input = document.getElementById('myInput');
const button = document.getElementById('checkButton');
const result = document.getElementById('result');

button.onclick = function() {
  const inputValue = input.value;
  result.textContent = '입력된 값: ' + inputValue;
};

 

우선 선언된 변수는 3가지 각각

myInput, checkButton, result라는 아이디를 가진 변수를 끌어왔다.

데이터 타입은 텍스트, 버튼, 단락이다.

input 태그는 타입을 텍스트로 설정하여 텍스트를 입력할 수 있도록 했다.

확인 버튼을 누를 경우 <p>에 입력된 텍스트가 '입력된 값: ' + input에 입력된 값 으로 변경된다.

 

여기에서 이벤트 리스너와 핸들러를 분리시켜야한다.

아래처럼 handleClick이라는 함수 (이벤트 핸들러) 를 만들고

checkButton에서 클릭이라는 행위를 받아오는 addEventListener('click', handleClick); 이벤트 리스너를 만든다.

// 버튼 클릭 시 실행될 함수
function handleClick() {
  const inputValue = input.value;
  result.textContent = '입력된 값: ' + inputValue;
}

// 버튼 클릭 이벤트 리스너 등록
checkButton.addEventListener('click', handleClick);

 

결과적으로 코드는 아래와 같이 변경된다.

const input = document.getElementById('myInput');
const button = document.getElementById('checkButton');
const result = document.getElementById('result');

// 버튼 클릭 시 실행될 함수
function handleClick() {
  const inputValue = input.value;
  result.textContent = '입력된 값: ' + inputValue;
}

// 버튼 클릭 이벤트 리스너 등록
checkButton.addEventListener('click', handleClick);