본문 바로가기
프로그램

jquery 체크박스 선택 시 특정 섹션 활성화/비활성화

by 다온다올과함께 2024. 11. 27.

 

 

 

jQuery를 사용하여 체크박스를 선택하거나 선택 해제했을 때 특정 섹션을 활성화(표시)하거나 비활성화(숨김)하려면 아래 방법을 사용할 수 있습니다.

 

 

 

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Checkbox Example</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <style>
        #section {
            display: none; /* 초기에는 숨김 */
            margin-top: 10px;
            padding: 10px;
            border: 1px solid #ccc;
            background-color: #f9f9f9;
        }
    </style>
</head>
<body>
    <label>
        <input type="checkbox" id="toggleCheckbox"> Show Section
    </label>

    <div id="section">
        <p>This is the section that will be shown or hidden based on the checkbox.</p>
    </div>

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

 

 

 

jQuery 스크립트 (script.js)

$(document).ready(function () {
    $('#toggleCheckbox').change(function () {
        if ($(this).is(':checked')) {
            // 체크박스가 선택된 경우 섹션 표시
            $('#section').slideDown();
        } else {
            // 체크박스가 해제된 경우 섹션 숨김
            $('#section').slideUp();
        }
    });
});

 

 

 

 

동작 방식

  1. 체크박스 이벤트 감지
    • $('#toggleCheckbox').change()는 체크박스의 상태가 변경될 때 호출됩니다.
  2. 체크 여부 확인
    • $(this).is(':checked')를 사용하여 체크박스가 선택되었는지 확인합니다.
  3. 섹션 활성화/비활성화
    • 체크박스가 선택되었으면 $('#section').slideDown()으로 섹션을 표시합니다.
    • 체크박스가 해제되었으면 $('#section').slideUp()으로 섹션을 숨깁니다.
  4. 애니메이션
    • slideDown()과 slideUp()은 부드러운 애니메이션 효과를 제공합니다.
    • 필요에 따라 show()와 hide()로 변경할 수 있습니다.

 

 


 

 

 

 

추가 옵션

1. 여러 섹션 관리

<label><input type="checkbox" class="toggle" data-target="#section1"> Section 1</label>
<label><input type="checkbox" class="toggle" data-target="#section2"> Section 2</label>

<div id="section1" style="display: none;">Content for Section 1</div>
<div id="section2" style="display: none;">Content for Section 2</div>
$(document).ready(function () {
    $('.toggle').change(function () {
        let target = $(this).data('target');
        if ($(this).is(':checked')) {
            $(target).slideDown();
        } else {
            $(target).slideUp();
        }
    });
});

 

 

2. 활성화/비활성화와 함께 입력 필드 제어

$(document).ready(function () {
    $('#toggleCheckbox').change(function () {
        if ($(this).is(':checked')) {
            $('#section input').prop('disabled', false); // 활성화
            $('#section').slideDown();
        } else {
            $('#section input').prop('disabled', true); // 비활성화
            $('#section').slideUp();
        }
    });
});

 

 

 

 

 

#jquery #change() #slideDown() #slideUp() #prop() #event #활성화/비활성화

 

 

 

 

 

 

 

반응형

댓글