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"); } }

+ Recent posts