체크박스(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");
}
}
댓글목록
등록된 댓글이 없습니다.