<JavaScript> JS를 이용한 폼 유효성 검사

반응형

JavaScript를 이용한 폼 유효성 검사: 사용자 입력 확인하기

폼을 이용하여 사용자로부터 정보를 받을 때, 폼에 올바른 정보가 입력되었는지 확인하는 과정은 필수적입니다.

폼 유효성 검사를 통해 이를 수행할 수 있습니다. 자바스크립트를 이용한 폼 유효성 검사를 살펴봅시다.

 

기본 폼 구성 및 처리

 

우선 간단한 HTML 폼을 만들어 봅시다. 이 폼에는 이름, 이메일, 암호 등 필요한 입력란이 있습니다.

<form id="userForm">
  <label for="name">이름:</label>
  <input type="text" id="name" name="name">
  <br/>

  <label for="email">이메일:</label>
  <input type="email" id="email" name="email">
  <br/>

  <label for="password">비밀번호:</label>
  <input type="password" id="password" name="password">
  <br/>

  <input type="submit" value="Submit">
</form>

 

이벤트 처리 및 기본 동작 차단

폼 유효성 검사를 수행하기 전에, 폼의 제출 버튼이 클릭되었을 때 수행될 이벤트를 처리해야 합니다.

이 경우에는 JavaScript를 이용해 submit 이벤트를 포착합니다. 또한, 기본 submit 동작을 차단하여 페이지 새로 고침이 발생하지 않게 해야합니다.

document.getElementById("userForm").addEventListener("submit", function(event) {
  event.preventDefault(); // 기본 submit 동작 차단

  // 유효성 검사 수행
});

 

입력란 값에 따른 유효성 검사

이제 각 입력란에 대한 유효성 검사를 수행하겠습니다. 입력란의 값이 적절한지에 따라 다양한 조건을 검토해야 합니다.

function validateForm() {
  let name = document.getElementById("name").value;
  let email = document.getElementById("email").value;
  let password = document.getElementById("password").value;

  if (name.trim() === "") {
    alert("Please enter a name.");
    return false;
  }

  if (email.trim() === "") {
    alert("Please enter an email address.");
    return false;
  }

  if (password.trim() === "" || password.length < 6) {
    alert("Please enter a password with at least 6 characters.");
    return false;
  }

  alert("Form submitted successfully!");
  return true;
}

위의 코드는 각 입력란의 값을 검증한 후, 문제가 있으면 알람을 생성하고 유효성 검사를 종료합니다.

모든 값이 적절하다면 폼 제출에 성공했다는 메시지를 표시합니다.

 

전체 코드 구성

 

다음은 HTML과 JavaScript를 합친 전체 코드입니다.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Form Validation Example</title>
  <script>
    document.addEventListener("DOMContentLoaded", function() {
      document.getElementById("userForm").addEventListener("submit", function(event) {
        event.preventDefault(); // 기본 submit 동작 차단

        // 유효성 검사 수행
        if (validateForm()) {
          // 서버에 폼 전송 작업 (e.g., AJAX, 데이터베이스 연결)
        }
      });
    });

    function validateForm() {
      let name = document.getElementById("name").value;
      let email = document.getElementById("email").value;
      let password = document.getElementById("password").value;

      if (name.trim() === "") {
        alert("Please enter a name.");
        return false;
      }

      if (email.trim() === "") {
        alert("Please enter an email address.");
        return false;
      }

      if (password.trim() === "" || password.length < 6) {
        alert("Please enter a password with at least 6 characters.");
        return false;
      }

      alert("Form submitted successfully!");
      return true;
    }
  </script>
</head>
<body>
  <form id="userForm">
    <label for="name">이름:</label>
    <input type="text" id="name" name="name">
    <br/>

 <label for="email">이메일:</label>
    <input type="email" id="email" name="email">
    <br/>

    <label for="password">비밀번호:</label>
    <input type="password" id="password" name="password">
    <br/>

    <input type="submit" value="Submit">
  </form>
</body>
</html>

 

감사합니다.

Designed by JB FACTORY