안녕하세요 역자 신대호 입니다. 새로 작성하신 스크립트를 보면 if($(":checkbox").attr("checked","checked")) {...} 이런식으로 작성하셨는데요 이것은 checkbox의 checked 속성을 checked로 지정하라는 의미 입니다. 그러므로 checked 가 지정되어 있을 경우에 else문을 타는 로직은 아닙니다.
원하시는 대로 else쪽을 타려면 if($(":checkbox").is(":checked")) {...} 이렇게 .is 를 사용하시면 됩니다.
팁으로 위와 같은 로직은 전체 checkbox에 대해 체크 되거나 안되거나만 제어할 수 있고 아래와 같은 로직을 쓰면 체크된 것은 언체크로 언체크는 체크로 하는 기능이 됩니다. $(":checkbox").each(function (index) { if($(this).is(":checked")) { $(this).attr("checked", ""); } else { $(this).attr("checked", "checked"); } }); });
감사합니다~
2012.08.09 10:47:33 (*.218.235.4)
SpingX
참고로 $(":checkbox").is(":checked") 는 checkbox의 값이 checked이면 true 아니면 false를 리턴합니다.
안녕하세요 저자 입니다. 제가 팁으로 드린 부분과 처음 쓰신 부분이 섞이 신것 같습니다. $(":checkbox").attr("checked", ""); 부분을 $(":checkbox").removeAttr("checked",""); 로 하시면 됩니다.
감사합니다.
2012.09.20 11:48:55 (*.55.74.243)
bokhanb
$(":checkbox").removeAttr("checked",""); 라고 하셨는데 removeAttr의 경우는 형식이 removeAttr(속성이름) 인것으로 압니다. 그래서, $(":checkbox").removeAttr("checked"); 라고만 하는것이 바를 듯 합니다.
감사합니다.