체크박스(Checkbox)에서 체크 안된값도 넘겨주는 함수
페이지 정보
작성자 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 5,886회 작성일 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"); } }
댓글목록
등록된 댓글이 없습니다.