전체 체크박스 해제/선택에서, 부분 선택할 경우 이게 궁금합니다.

전체 체크박스 해제/선택에서, 부분 선택할 경우 이게 궁금합니다.

QA

전체 체크박스 해제/선택에서, 부분 선택할 경우 이게 궁금합니다.

본문

안녕하세요.

http://manghal.co.kr/sub/check.php

여기에서..

 

"약관 및 수신을 모두 동의"할 경우

아래 id=send 인 버튼에 addClass=on 을 하게 했습니다.

이건 잘 되고있습니다.

 

그런데..

 

"약관 및 수신을 모두 동의"하지 않고

개인정보와 sms 개별로 체크햇을 경우

둘다 체크하면 "모두 동의" 체크가 되게까지는 했는데요.

 

모두 동의 체크햇을때처럼 addClass=on 이 되게하려면 소스에서 어떤걸 수정해야할까요? ㅠ

 

2009076013_1624930013.0599.jpg

 

<code>

                    // 체크박스 전체 선택
                    $(".user-check-tit").on("click", "#cb1", function () {
                        $(this).parents(".user-check-tit").find('input').prop("checked", $(this).is(":checked"));

                        $('#send').addClass('on');
                    });

 

                    // 개별 체크박스 선택시
                    $(".user-check-tit").on("click", ".normal", function() {
                        var is_checked = true;

                        $(".user-check-tit .normal").each(function(){
                            is_checked = is_checked && $(this).is(":checked");

                            // 모두 동의가 돼잇을 경우, on 클래스 해제 
                            $('#send').removeClass('on'); 
                        });

                        $("#cb1").prop("checked", is_checked);
                    });

</code>

이 질문에 댓글 쓰기 :

답변 2


<script>
$(document).ready(function() {
    $(".normal").change(function(){
        if($("#cb2").is(":checked") == true && $("#cb3").is(":checked") == true){
            $('#send').addClass('on');
        }else{
            $('#send').removeClass('on');
        }
    });
});
</script>

 

이렇게 하셔도 되실거에요.

each() 하지 마시고 

갯수를 비교하면 어떨까요? 

.user-check-tit 이 클래스는 스타일을 위한 클래스로만 사용하시고

개별 선택 체크박스는 컨트롤할 클래스를 따로 붙이신다음 (#cb1과 구별하기 위해)

아님 네임으로 셀렉터를 찾아도 좋고요 $('[name="check"]')

 

                    // 개별 체크박스 선택시
                    $(".user-chk").on("click", ".normal", function() {
                        var is_checked = $('.user-chk:enabled').length == $('.user-chk:checked').length;

                        $("#cb1").prop("checked", is_checked);
                    });

 

답변을 작성하시기 전에 로그인 해주세요.
전체 2,663
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT