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

본문 바로가기
사이트 내 전체검색

script

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

페이지 정보

작성자 서방님 댓글 0건 조회 158회 작성일 06-09-20 17:57

본문

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으로 바꿔주는 함수
 *    2005.06.21 by 손민창
 *
 *    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");
    }
}

 

댓글목록

등록된 댓글이 없습니다.

Total 846건 49 페이지
게시물 검색

회원로그인

접속자집계

오늘
21
어제
109
최대
1,347
전체
167,538
Latest Crypto Fear & Greed Index

그누보드5
Copyright © 서방님.kr All rights reserved.