사악미소
현대마법의 공방
사악미소
전체 방문자
오늘
어제
  • 분류 전체보기
    • Document
    • JavaScript
    • jQuery
    • Spring Web
      • Spring Framework
      • Spring Boot
    • Android
      • Java Code
      • Setting
    • iOS
      • Swift Code
      • Setting
    • PHP
      • Code
      • Setting
    • AWS
    • LINUX
      • Rocky Linux
      • CentOS
    • Node.js
    • Developer Tool
    • GIT
    • MAC
    • Scraping Document
    • MariaDB
    • WYSIWYG
    • Scouter
    • Docker
    • Planning
    • 용어정리
반응형

인기 글

최근 댓글

Programmer 사악미소.
사악미소

사악미소의 현대마법의 공방

[JavaScript] 체크박스를 이용한 백분율 선택
JavaScript

[JavaScript] 체크박스를 이용한 백분율 선택

2023. 5. 24. 14:07
728x90

 

5의 배수( 5 ~ 100 까지 )의 값을 가지고 있는 체크박스중 하나를 선택한경우

선택한 체크박스의 value값보다 작은값을 가지고 있는 체크박스들은 전부 선택되고,

선택한 체크박스의 value값보다  큰값을 가지고 있는 체크박스들은 전부 선택해제된다.

 

 

# 소스코드

<html>
<head>
    <title>:: 체크박스로 퍼센트 구하기 ::</title>
    <style type="text/css">
        table, th, td { border:1px solid #000000;border-collapse:collapse;padding:5px; }
        label { width:55px; }
        #progressBar { width:100%; }
    </style>
    <script type="text/javascript">
        document.addEventListener("DOMContentLoaded", function() {

            // @event 체크박스 체크 및 체크해제 이벤트 발생시 실행
            document.querySelectorAll(".chkPercent").forEach(function(choiceBox, choiceNum) {

                // 체크박스들중 하나의 값이 변경된 경우
                choiceBox.addEventListener("change", function() {
                
                    let percentage = 0;

                    // 전체 체크박스의 변경을 위해 반복문( forEach ) 실행
                    document.querySelectorAll(".chkPercent").forEach(function(checkBox, checkNum) {

                        // 선택한 체크박스보다 값이 작은경우
                        if(choiceNum > checkNum) {
                            checkBox.checked = true;
                        }

                        // 선택한 체크박스보다 값이 큰경우
                        else if(choiceNum < checkNum) {
                            checkBox.checked = false;
                        }
                    });

                    // progress 태그에 선택한 체크박스의 value값 반영
                    if(choiceBox.checked == true) {
                        percentage = choiceBox.value;
                    }

                    // 체크를 해제하였기에 progress 태그에 이전 체크박스의 value값 반영
                    else {
                        percentage = document.querySelectorAll(".chkPercent")[choiceNum - 1].value;
                    }

                    document.getElementById("progressBar").value = percentage;
                });
            });
        });
    </script>
</head>
<body>
<div>
    <h3>■ 백분율(Percent)값을 체크박스로 변경하기</h3>
    <br/>
    <table>
        <thead>
            <tr>
                <th>/</th>
                <th>Percent( % )</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <th>5% ~ 25%</th>
                <td>
                    <label><input type="checkbox" class="chkPercent" value="5">05%</label>
                    <label><input type="checkbox" class="chkPercent" value="10">10%</label>
                    <label><input type="checkbox" class="chkPercent" value="15">15%</label>
                    <label><input type="checkbox" class="chkPercent" value="20">20%</label>
                    <label><input type="checkbox" class="chkPercent" value="25">25%</label>
                </td>
            </tr>
            <tr>
                <th>30% ~ 50%</th>
                <td>
                    <label><input type="checkbox" class="chkPercent" value="30">30%</label>
                    <label><input type="checkbox" class="chkPercent" value="35">35%</label>
                    <label><input type="checkbox" class="chkPercent" value="40">40%</label>
                    <label><input type="checkbox" class="chkPercent" value="45">45%</label>
                    <label><input type="checkbox" class="chkPercent" value="50">50%</label>
                </td>
            </tr>
            <tr>
                <th>55% ~ 75%</th>
                <td>
                    <label><input type="checkbox" class="chkPercent" value="55">55%</label>
                    <label><input type="checkbox" class="chkPercent" value="60">60%</label>
                    <label><input type="checkbox" class="chkPercent" value="65">65%</label>
                    <label><input type="checkbox" class="chkPercent" value="70">70%</label>
                    <label><input type="checkbox" class="chkPercent" value="75">75%</label>
                </td>
            </tr>
            <tr>
                <th>80% ~ 100%</th>
                <td>
                    <label><input type="checkbox" class="chkPercent" value="80">80%</label>
                    <label><input type="checkbox" class="chkPercent" value="85">85%</label>
                    <label><input type="checkbox" class="chkPercent" value="90">90%</label>
                    <label><input type="checkbox" class="chkPercent" value="95">95%</label>
                    <label><input type="checkbox" class="chkPercent" value="100">100%</label>
                </td>
            </tr>
        </tbody>
    </table>
    <br/>
    <progress id="progressBar" value="0" max="100"></progress>
</div>
</body>
</html>

 

 

 

# 출력결과

:: 체크박스로 퍼센트 구하기 ::

■ 백분율(Percent) 체크박스로 변경하기


/ Percent( % )
5% ~ 25%
30% ~ 50%
55% ~ 75%
80% ~ 100%

 

 

 

 

728x90

'JavaScript' 카테고리의 다른 글

[JavaScript] 다중 파일 업로드시 진행률(ProgressBar) 표시  (0) 2024.01.18
[JavaScript] AJAX를 이용하는 Page Navigation 제작  (0) 2023.12.08
[JavaScript] 입력한 텍스트의 Byte 체크  (0) 2023.02.14
[JavaScript] 입력한 텍스트의 문자길이 체크  (0) 2023.02.14
[JavaScript] 휴대폰 번호 Hyphen(-) 삽입 형식 자동 입력폼  (0) 2022.12.26
    'JavaScript' 카테고리의 다른 글
    • [JavaScript] 다중 파일 업로드시 진행률(ProgressBar) 표시
    • [JavaScript] AJAX를 이용하는 Page Navigation 제작
    • [JavaScript] 입력한 텍스트의 Byte 체크
    • [JavaScript] 입력한 텍스트의 문자길이 체크
    사악미소
    사악미소

    티스토리툴바