jQuery 로 원하는 갯수만큼 checkbox 선택하기

by 조쉬 posted Jan 10, 2019
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
티켓 예매하는 사이트 같은데서 보면 인원수를 선택하고 그 인원수만큼만 좌석을 선택하는게 있다.

고런걸 한번 jQuery를 이용해서 간략하게나마 맹글어 보겠다.

저쪽 아래의 소스 코드로 맹글어질 것은 아래와 같다. 테스트로 클릭해 보셈~ 

※ 요것은 IE7~9, 크롬에서 정상적으로 테스트 됬다.
인원수 선택 :


소스코드 


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=EUC-KR"/>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
 
    <script>
        // html 이 다 로딩된 후 실행
        $(document).ready(function() {
            // 체크박스들이 변경됬을때
            $(":checkbox").change(function() {
                var cnt = $("#person").val();
                 
                // 셀렉트박스의 값과 체크박스중 체크된 갯수가 같을때, 다른 체크박스들을 disable 처리
                if( cnt==$(":checkbox:checked").length ) {
                    $(":checkbox:not(:checked)").attr("disabled", "disabled");
                }
                // 체크된 갯수가 다르면 활성화 시킴
                else {
                    $(":checkbox").removeAttr("disabled");
                }
            });
             
            // 셀렉트박스에서 다른 인원수를 선택하면 초기화 시킴
            $("#person").change(function(){
                $(":checkbox").removeAttr("checked");
                $(":checkbox").removeAttr("disabled");
            });
        });
    </script>
</head>
<body>
    <span>인원수 선택 : </span>
    <select id="person">
        <option value="1">1명</option>
        <option value="2">2명</option>
        <option value="3">3명</option>
        <option value="4">4명</option>
        <option value="5">5명</option>
    </select>
 
    <table border="1">
        <tr>
            <td><label><input type="checkbox"/>1</label></td>
            <td><label><input type="checkbox"/>2</label></td>
            <td><label><input type="checkbox"/>3</label></td>
            <td><label><input type="checkbox"/>4</label></td>
            <td><label><input type="checkbox"/>5</label></td>
            <td><label><input type="checkbox"/>6</label></td>
        </tr>
        <tr>
            <td><label><input type="checkbox"/>7</label></td>
            <td><label><input type="checkbox"/>8</label></td>
            <td><label><input type="checkbox"/>9</label></td>
            <td><label><input type="checkbox"/>10</label></td>
            <td><label><input type="checkbox"/>11</label></td>
            <td><label><input type="checkbox"/>12</label></td>
        </tr>
    </table>
</body>
</html>