JQUERY 에서 전체 선택, 전체 해제는 정말 간단 하다.
그런데 왜 그런지는 모르겠으나 잘 못 된 구현 법이 인터넷에 범람하고 있어서
엄청 고생한 것 같다.
일단 잘 못 된 구현 법을 적어 놓아 보겠다.
<input type="checkbox" name="CHECK_ALL_CONTENTS" onclick="checkedAll();">
<input type="checkbox" name="CHECK_CONTENT_ID">
<input type="checkbox" name="CHECK_CONTENT_ID">
<input type="checkbox" name="CHECK_CONTENT_ID">
---------------------------------
자바스크립트
function checkedAll(){
if($("input[name=CHECK_ALL_CONTENTS]").is(":checked")){
$("input[name=CHECK_CONTENT_ID]").attr("checked","checked"));
}else{
$("input[name=CHECK_CONTENT_ID]").attr("checked",""));
}
}
위의 방법은 해제가 되지 않는다. "" 라는 checked attribute 의 value 가 없는 것이다.
이걸 자바 스크립트만 바꾸면 바로 해결 된다.
function checkedAll(){
$("input[name=CHECK_CONTENT_ID]").attr("checked",$("input[name=CHECK_ALL_CONTENTS]").is(":checked"));
}
checked attribute 의 값을 true , false 로 넣어 주면 된다는 것이다.
그런데 왜 그런지는 모르겠으나 잘 못 된 구현 법이 인터넷에 범람하고 있어서
엄청 고생한 것 같다.
일단 잘 못 된 구현 법을 적어 놓아 보겠다.
<input type="checkbox" name="CHECK_ALL_CONTENTS" onclick="checkedAll();">
<input type="checkbox" name="CHECK_CONTENT_ID">
<input type="checkbox" name="CHECK_CONTENT_ID">
<input type="checkbox" name="CHECK_CONTENT_ID">
---------------------------------
자바스크립트
function checkedAll(){
if($("input[name=CHECK_ALL_CONTENTS]").is(":checked")){
$("input[name=CHECK_CONTENT_ID]").attr("checked","checked"));
}else{
$("input[name=CHECK_CONTENT_ID]").attr("checked",""));
}
}
위의 방법은 해제가 되지 않는다. "" 라는 checked attribute 의 value 가 없는 것이다.
이걸 자바 스크립트만 바꾸면 바로 해결 된다.
function checkedAll(){
$("input[name=CHECK_CONTENT_ID]").attr("checked",$("input[name=CHECK_ALL_CONTENTS]").is(":checked"));
}
checked attribute 의 값을 true , false 로 넣어 주면 된다는 것이다.
또 다른 예를 들면
$('input[name=THUMB_FILE]').attr('disabled',false);
라고 구현하면 된다는 것이다. (input type="file" 도 된다.)
제발 인터넷에 올리는 분들이 상상 코딩 말고 구현을 한번이라도 해주시고
올려 주시면 좋겠다.
댓글