본문 바로가기
프로그램

jquery 텍스트 필드 값 변경 시 유효성 검사

by 다온다올과함께 2024. 12. 1.

 

 

 

jQuery를 사용하여 텍스트 필드 값이 변경될 때 유효성 검사를 수행하는 방법을 알려드리겠습니다. 이를 위해 change 이벤트와 keyup 이벤트를 활용할 수 있습니다.

 

 

HTML 코드

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>유효성 검사 예제</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
    <form id="myForm">
        <label for="username">사용자 이름:</label>
        <input type="text" id="username" name="username">
        <span id="username-error" style="color: red; display: none;">유효하지 않은 값입니다.</span>
        <br>
        <label for="email">이메일:</label>
        <input type="text" id="email" name="email">
        <span id="email-error" style="color: red; display: none;">올바른 이메일 주소를 입력하세요.</span>
        <br>
        <button type="submit">제출</button>
    </form>

    <script src="validation.js"></script>
</body>
</html>

 

 

jQuery 코드 (validation.js)

$(document).ready(function () {
    // 사용자 이름 유효성 검사
    $("#username").on("keyup change", function () {
        const username = $(this).val();
        if (username.length < 3 || username.length > 15) {
            $("#username-error").show();
        } else {
            $("#username-error").hide();
        }
    });

    // 이메일 유효성 검사
    $("#email").on("keyup change", function () {
        const email = $(this).val();
        const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
        if (!emailRegex.test(email)) {
            $("#email-error").show();
        } else {
            $("#email-error").hide();
        }
    });

    // 폼 제출 시 유효성 검사
    $("#myForm").on("submit", function (e) {
        let isValid = true;

        // 사용자 이름 검사
        const username = $("#username").val();
        if (username.length < 3 || username.length > 15) {
            isValid = false;
            $("#username-error").show();
        }

        // 이메일 검사
        const email = $("#email").val();
        const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
        if (!emailRegex.test(email)) {
            isValid = false;
            $("#email-error").show();
        }

        if (!isValid) {
            e.preventDefault(); // 제출 방지
            alert("유효성 검사를 통과하지 못했습니다.");
        }
    });
});

 

 

설명

  1. keyup 및 change 이벤트 사용:
    • 사용자가 텍스트 필드의 값을 입력하거나 값을 변경할 때마다 유효성 검사를 즉시 수행합니다.
  2. 유효성 검사 조건:
    • 사용자 이름은 최소 3자 이상, 최대 15자 이하.
    • 이메일은 정규식을 사용하여 형식 검사를 수행합니다.
  3. 오류 메시지 처리:
    • 유효하지 않은 값일 경우, 해당 오류 메시지를 표시.
    • 올바른 값이 입력되면 오류 메시지를 숨김.
  4. 폼 제출 유효성 검사:
    • 사용자가 입력한 값이 유효하지 않으면 폼 제출을 막고 경고 메시지를 표시합니다.

 

 

위 코드를 통해 실시간으로 텍스트 필드 값의 유효성을 검사할 수 있습니다. 필요에 따라 검사 조건을 변경하거나 추가할 수 있습니다.

 

 

 

 

 

#jquery #change #keyup #event #유효성검사 #폼제출유효성검사 #오류메시지처리

 

 

 

 

 

반응형

댓글