checkbox 해제 이벤트는? 채택완료
안녕하세요
http://eonplace.co.kr/sub/sub04_01.html?ptype=view&idx=5548&page=1&code=interior01&category=161
여기에서
인테리어 항목을 체크/해제하면 아래 합계금액이 바뀌게 해놓은건데요.
현재는 printVal() 이라는 함수로, 체크박스 체크하면 해당 value 를 hidden 인풋에 넣어놓고 있는데요.
체크박스를 해제하면 hidden 인풋에 넣어진 값을 초기화를 해야하는데.. 그게 안되더라구요.
어떤 방법이 가장 좋을까요? 고견 부탁드립니다. ㅠ
//체크박스 선택/해제시 함수
function itemSum(frm)
{
var sum = 0;
var count = frm.chkbox.length;
for(var i=0; i < count; i++ ){
if( frm.chkbox[i].checked == true ){
sum += parseInt(frm.chkbox[i].value);
}
}
//frm.total_sum.value = sum;
item_sum = sum;
frm.total_sum.value=item_sum;
}
// 체크박스 선택시 함수 2번째
function printVal(vnum) {
//alert('00');
var vnum;
if (vnum=='1') {
frm.chk_val1.value = document.getElementById("chkbox1").value
...........중략 .....................
} else if (vnum=='10') {
frm.chk_val10.value = document.getElementById("chkbox10").value
} else {
}
}
답변 2개
</p>
<p> if (vnum=='1') {</p>
<p> if(frm.chk_val1.checked === true){
frm.chk_val1.value = document.getElementById("chkbox1").value</p>
<p> }else{</p>
<p> frm.chk_val2.value = ''</p>
<p> }</p>
<p>
이렇게 하면 될 것 같은데 소스가 길어지니까 for문을 사용하시거나 아니면 itemSum 을 수정하여 같이 처리하도록하는 것도 좋을 것 같습니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 2개
위에서는 그냥 for로 돌려서 해당 checkbox value만 합계하고 있는거구요
checkbox를 어떤걸 해제했다. 그때 이벤트는... ? 이런걸 어찌해야할지 모르겟네요 ;;
클릭됐을때 현재 체크박스의 상태가 체크상태인지 확인하고
체크가 해제됐다면 value를 비워주도록 함수를 하나 만드시면 됩니다
input type=checkbox onclick=chkval(this)
function chkval(el) {
var s = el.checked;
if(!s) {
t.value = "";
}
}
정확한 소스는 아니고 대충 이런 흐름입니다
코드는 구글에서 참고해보세요,,ㅋㅋ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인