웹프로그래밍

Global It Leader!!


jQuery


 
 

체크박스(Checkbox)에서 체크 안된값도 넘겨주는 함수

페이지 정보

작성자 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 5,916회 작성일 12-04-24 15:45

본문

 

checkbox의경우 submit 하게 되면 체크 된것은 이름,값이 넘어가는데 체크 안된것은 이름,값이 안넘어 갑니다.
아래의 경우 첫번째것만 체크하고선 submit 한다면 submit된 페이지에선 chk=1 이 값만 나오고 다른것은 아예 넘어오질 않습니다.
<input type=checkbox name=chk value=1>
<input type=checkbox name=chk value=2>
<input type=checkbox name=chk value=3>

이런이유 때문에 가끔 코딩할때 괴로운 경우가 있습니다. 값이 있던 없던 넘기고봐야하는데 checkbox는 체크 안된것들은 안넘겨버리니.. -_-
아무튼 그런 괴로움 해결하고자 만든 함수 입니다......

사용법은 간단 합니다. submit 하기 전에 아래 함수 한번 호출 시키면 됩니다.

CheckboxToHidden(frm, frm.chk);
frm.submit(); 


 

/*
 * CheckBox를 Hidden으로 바꿔주는 함수
 *    *
 *    f : 폼이름
 *    ele : checkbox 이름
 */
function CheckboxToHidden(f,ele) {
    var ele_h;
    var val;
    
    if (typeof(ele.length) != "undefined") {// checkbox가 배열일경우
        for (var i = 0; i < ele.length; i++) {
            // hidden객체생성, 이름은 checkbox와 같게한다.
            ele_h = document.createElement("input");
            ele_h.setAttribute("type","hidden");
            ele_h.setAttribute("name",ele[i].name);
            ele[i].checked ? val = ele[i].value : val = "";
            ele_h.setAttribute("value",val);
            f.appendChild(ele_h);
    
            // 기존 checkbox의 이름을 이름_dummy로 변경한후 checked = false해준다.
            ele[i].checked = false;
            ele[i].setAttribute("name",ele[i].name + "_dummy");
        }
    } else {// checkbox가 한개
            ele_h = document.createElement("input");
            ele_h.setAttribute("type","hidden");
            ele_h.setAttribute("name",ele.name);
            ele.checked ? val = ele.value : val = "";
            ele_h.setAttribute("value",val);
            f.appendChild(ele_h);
    
            ele.checked = false;
            ele.setAttribute("name",ele.name + "_dummy");   
    }
}

댓글목록

등록된 댓글이 없습니다.

전체 148
게시물 검색
jQuery 목록
번호 제목 글쓴이 조회 날짜
68 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3849 02-12
67 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4278 02-10
66 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3789 02-08
65 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3807 02-08
64 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 3789 01-31
63 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4700 01-03
62 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4186 11-29
61 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 6860 09-17
60 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5714 08-21
59 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5020 08-21
58 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 6543 07-13
57 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 6107 06-13
56 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5470 04-28
55 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5623 04-24
54 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5015 04-24
열람중 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5917 04-24
52 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 5016 04-24
51 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4499 04-20
50 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4148 04-19
49 no_profile 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 4499 04-19