본문 바로가기
프로그램

jquery div로 구성하되 조건에 따라 초기 필드를 설정하고, 추가 및 삭제 기능을 구현

by 다온다올과함께 2025. 3. 27.

 

 

 

요구 사항

  1. 초기 필드 개수 설정 가능 (예: 3개 기본 생성)
  2. [추가] 버튼 클릭 시 필드 추가 가능
  3. [삭제] 버튼 클릭 시 해당 필드 삭제 가능
  4. 최소 필드 개수 유지 (예: 2개 이하로는 삭제 불가)

jQuery 코드 예제

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>jQuery 동적 필드 추가/삭제</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <style>
        .field-container {
            margin-bottom: 10px;
        }
        .remove-btn {
            margin-left: 10px;
            color: red;
            cursor: pointer;
        }
    </style>
</head>
<body>

    <button id="add-field">추가</button>
    <div id="field-wrapper">
        <!-- 초기 필드가 생성될 영역 -->
    </div>

    <script>
        $(document).ready(function () {
            let count = 0;
            let minFields = 2;  // 최소 필드 개수
            let initialFields = 3; // 초기 필드 개수

            // 초기 필드 생성 함수
            function createInitialFields() {
                for (let i = 0; i < initialFields; i++) {
                    addField();
                }
            }

            // 필드 추가 함수
            function addField() {
                count++;
                $("#field-wrapper").append(`
                    <div class="field-container" id="field-${count}">
                        <input type="text" name="field[]" placeholder="입력값 ${count}" />
                        <span class="remove-btn" data-id="${count}">❌</span>
                    </div>
                `);
            }

            // 필드 삭제 함수
            function removeField(id) {
                if ($(".field-container").length > minFields) {
                    $("#field-" + id).remove();
                } else {
                    alert(`최소 ${minFields}개의 필드는 유지해야 합니다.`);
                }
            }

            // 초기 필드 생성
            createInitialFields();

            // 추가 버튼 클릭 이벤트
            $("#add-field").click(function () {
                addField();
            });

            // 삭제 버튼 클릭 이벤트 (이벤트 위임)
            $("#field-wrapper").on("click", ".remove-btn", function () {
                let id = $(this).data("id");
                removeField(id);
            });
        });
    </script>

</body>
</html>

기능 설명

 

  1. 초기 필드 3개 생성 (initialFields = 3;)
  2. 최소 필드 개수 2개 유지 (minFields = 2;)
  3. 필드 추가 버튼을 누르면 새로운 필드가 추가됨
  4. 삭제 버튼을 눌러 필드를 삭제할 수 있음

단, 최소 필드 개수(2개) 이상은 유지해야 함

 

 

 

 

 

#jquery #필드추가 #필드삭제

 

반응형

댓글