웹 개발에서 사용자가 폼을 제출하기 전에 입력값이 올바른지 확인하는 것은 매우 중요합니다. JavaScript의 onsubmit 이벤트를 활용하면 폼이 서버로 전송되기 전에 클라이언트 측에서 입력값을 검증할 수 있습니다. 이번 글에서는 텍스트 입력값을 검증하는 간단한 예제를 살펴보겠습니다.
예제 코드
아래 코드는 폼 제출 시 validateTheForm() 함수를 호출하여 입력값이 'gmail'과 일치하는지 확인하는 예제입니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>
<form onsubmit="return validateTheForm()" method="GET" action="https://mail.google.com/mail/">
<br/>
<input type="text" id="txtInput" value=""/>
<input type="submit" value="search"/>
</form>
<script>
function validateTheForm(){
var validation = (document.getElementById('txtInput').value == 'gmail');
if(!validation){
alert('입력값이 올바르지 않습니다. 텍스트 상자에 gmail을 입력하고 클릭해 주세요.');
return false;
}
return true;
}
</script>
</body>
</html>실행 방법
위 프로그램을 실행하려면 파일 이름을 "anyName.html(index.html)"로 저장한 뒤, 해당 파일을 마우스 오른쪽 버튼으로 클릭합니다. 그다음 VS Code 편집기에서 'Open with Live Server' 옵션을 선택하면 됩니다.
실행 결과
위 코드를 실행하면 다음과 같은 화면이 출력됩니다.

Step 1 - 올바른 값 입력
텍스트 상자에 gmail을 입력합니다.

검색(search) 버튼을 클릭하면 아래와 같은 결과가 나타납니다.

Step 2 - 잘못된 값 입력
반대로 gmail 이외의 다른 값을 입력하면 경고(alert) 메시지가 표시됩니다.
먼저 다른 값을 입력한 뒤 엔터(Enter) 키를 눌러봅니다.

검색 버튼을 클릭하면 아래 출력 화면처럼 경고 메시지가 나타나며, 폼은 제출되지 않습니다.

동작 원리 정리
이 예제의 핵심은 <form> 태그의 onsubmit 속성입니다. 이 속성에 지정된 함수가 false를 반환하면 폼 제출이 중단되고, true를 반환할 때만 지정된 action 주소로 데이터가 전송됩니다. 이처럼 JavaScript를 활용하면 잘못된 데이터가 서버로 전송되기 전에 사용자에게 즉각적인 피드백을 제공할 수 있습니다.