개발/기타

jQuery로 checkbox 제어(1)

xwing 2009. 2. 15. 20:53
일단 Body에 제어할  checkbox를 놓아두자.
<body>
    <form id="form1" runat="server">
    <br />
    <input type="checkbox" id="check1" value="1" />1&nbsp;   
    <input type="checkbox" id="check2" value="2" />2&nbsp;
    <input type="checkbox" id="check3" value="3" />3&nbsp;
    <input type="checkbox" id="check4" value="4" />4&nbsp;
    <br />
    <input type="button" id="btnCheck" value="_submit" />&nbsp;
    <input type="button" id="btnAllCheck" value="all check" />&nbsp;
    <input type="button" id="btnUnCheck" value="all uncheck" />
    </div>
    </form>
</body>

스크립트 제어부분
<script type="text/javascript" src="Js/jquery-1.3.1.min.js"></script>
<script type="text/javascript">
        $(function() {
            // ---------- 01 -------------       
            $("#btnCheck").click(function() {
                alert($("input:checkbox:checked").length);
            });
            //----------- 02 -------------
            $("#btnAllCheck").click(function() {
                $("input:checkbox:not(checked)").attr("checked", "checked");
            });
            //------------ 03 ------------
            $("#btnUnCheck").click(function() {
                $("input:check:checked").attr("checked", "");
            });
        })
    </script>

Body안에는 제어할 체크박스를 위치하고
각각의 기능을 할 버튼을 세게 배치 하였다.

첫번째 버튼은 현재 체크되어 있는 체크박스의 수를 센다.
01번 위치의 스크립트를 보면
#btnCheck ID를 가진 버튼의 Click Event가 발생하면 실행되는 부분이다.
$("input:checkbox:checked").length 는 현재 웹페이지의 checkbox의 check 된 element의 수를 센다.

02번
#("input:checkbox:not(checked).attr("checked","checked") 는 현재 웹페이지에서 체크되지 않은 
[ not(checked) ] checkbox에 checked 어트리뷰트를 추가 [ .attr("checked", "checked) ]한다.

반대로 03번은 checked 어트리뷰트에 checked 속성에 공백을 넣어서 checked 속성을 없애버렸다.

jQuery 의 셀렉터에 대해서는 아래를 참조하자

http://docs.jquery.com/Selectors

좋은 하루 되시길...