Javasript 체크박스(Checkbox)에서 체크 안된값도 넘겨주는 함수
페이지 정보
작성자
본문
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"); } }
댓글목록
등록된 댓글이 없습니다.