Javascript

전체선택과 개별체크박스에 대한 이벤트 구현(JQuery)

오시리엔 2023. 10. 24. 09:31
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>전체선택과 개별체크박스에 대한 이벤트 구현</title>

    <!-- css 파일을 불러오는 코드 -->

    <!-- 아이콘 사용을 위한 Font Awesome 6 CDN -->
    <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css">

    <!-- 구글 웹 폰트 사용을 위한 CDN -->
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

    <!-- 내가 만든 CSS 파일-->
    <link rel="stylesheet" type="text/css" href="./css/reset.css">
    <link rel="stylesheet" type="text/css" href="./css/commons.css">
    <link rel="stylesheet" type="text/css" href="./css/test.css">
    <style>

    </style>

    <!-- jquery cdn -->
    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>

    <!-- javascript 작성 공간 -->
    <script>
        $(function(){
            //전체선택과 개별체크박스에 대한 이벤트 구현

            //전체선택
            $(".check-all").change(function(){
                var check = $(this).prop("checked");
                $(".check-all, .check-item").prop("checked", check);
            });

            //개별체크박스
            $(".check-item").change(function(){
                //var allCheck = 개별체크박스개수 == 체크된개별체크박스개수;
                //var allCheck = $(".check-item").length == $(".check-item:checked").length;
                var allCheck = $(".check-item").length == $(".check-item").filter(":checked").length;
                $(".check-all").prop("checked", allCheck);
            });
        });
    </script>
</head>
<body>
    <div class="container w-600">
        <div class="row">
            <h1>이용약관</h1>
        </div>
        <div class="row left">
            <label>
                <input type="checkbox" class="check-all"> 모두 동의합니다
            </label>
        </div>
        <div class="row left">
            <textarea class="form-input w-100" readonly>dummy text</textarea>
        </div>
        <div class="row left">
            <label>
                <input type="checkbox" class="check-item"> 동의합니다
            </label>
        </div>
        <div class="row left">
            <textarea class="form-input w-100" readonly>dummy text</textarea>
        </div>
        <div class="row left">
            <label>
                <input type="checkbox" class="check-item"> 동의합니다
            </label>
        </div>
        <div class="row left">
            <textarea class="form-input w-100" readonly>dummy text</textarea>
        </div>
        <div class="row left">
            <label>
                <input type="checkbox" class="check-item"> 동의합니다
            </label>
        </div>
        <div class="row left">
            <textarea class="form-input w-100" readonly>dummy text</textarea>
        </div>
        <div class="row left">
            <label>
                <input type="checkbox" class="check-item"> 동의합니다
            </label>
        </div>
        <hr>
        <div class="row left">
            <label>
                <input type="checkbox" class="check-all"> 모두 동의합니다
            </label>
        </div>
        <div class="row">
            <button class="btn btn-positive w-100" disabled
                                            id="next-btn">다음 단계로 이동</button>
        </div>
    </div>
</body>
</html>

'Javascript' 카테고리의 다른 글

회원가입(JQuery) 고급화  (0) 2023.10.26
멀티 페이지(JQuery)  (1) 2023.10.25
체크박스 제어(JQuery)  (0) 2023.10.23
회원가입(JQuery) input이벤트를 활용한.  (0) 2023.10.18
자기소개서  (0) 2023.10.17