체크박스, 라디오시 작성방법

체크박스, 라디오시 작성방법

QA

체크박스, 라디오시 작성방법

답변 1

본문

수량을 입력하면 곱하기 합산되는 스크립트입니다.

 

체크박스선택시, 라디오버튼 선택시 등을 추가하고 싶은데

input type을 checkbox나 radio로 바꾸고 

onChange를 onClick 으로 바꿨는데

값이 NaN이 되서요.

 

조언 부탁드립니다.

 


<form name="cnjform">
<br><br><center>견적서 자동 계산</center><br><br>
<table cellspacing=1 cellpadding="5" border=0 align="center" bgcolor="#CCCCCC">
<tr>
<td align="center" bgcolor="#FFFFCC">제품명</td>
<td align="center" bgcolor="#FFFFCC">가격</td>
<td align="center" bgcolor="#FFFFCC">수량</td>
<td align="center" bgcolor="#FFFFCC">비용</td>
</tr>
<tr>
<td bgcolor="white">제품1</td>
<td align="right" bgcolor="white">2,000원</td>
<td bgcolor="white"><input type="text" class="cnj_input"  name="cnjnum1" onKeyup="javascript:Chage_Money(1);onlyNum(cnjform.cnjnum1);" onChange="javascript:Chage_Money(1)" ; size="3" maxlength="3" style="text-align:center;"></td>
<td align="right" bgcolor="white"><input type="text" class="cnj_input"  name="cnjcost1" size="7" readonly style="text-align:right;"> 원</td>
</tr>
 
 
 
<!--체크박스선택시-->
<tr>
<td bgcolor="white">제품2<br>제품3
</td>
<td align="right" bgcolor="white">3,500원<br>5,500원
</td>
<td bgcolor="white">
<input type="checkbox" class="cnj_input"  name="cnjnum2" onKeyup="javascript:Chage_Money(2);onlyNum(cnjform.cnjnum2);" onClick="javascript:Chage_Money(2)" ; size="3" maxlength="3" style="text-align:center;"><br>
<input type="checkbox" class="cnj_input"  name="cnjnum3" onKeyup="javascript:Chage_Money(3);onlyNum(cnjform.cnjnum3);" onClick="javascript:Chage_Money(3)" ; size="3" maxlength="3" style="text-align:center;">
</td>
<td align="right" bgcolor="white"><input type="text" class="cnj_input"  name="cnjcost2" size="7" readonly style="text-align:right;"> 원<br>
<input type="text" class="cnj_input"  name="cnjcost3" size="7" readonly style="text-align:right;"> 원
</td>
</tr>
 
 
 

<!--라디오선택시-->
<tr>
<td bgcolor="white">제품4<br>제품5
</td>
<td align="right" bgcolor="white">500원<br>10,500원
</td>
<td bgcolor="white">
<input type="radio" class="cnj_input"  name="cnjnum4" onKeyup="javascript:Chage_Money(4);onlyNum(cnjform.cnjnum4);" onclick="javascript:Chage_Money(4)" ; size="3" maxlength="3" style="text-align:center;"><br>
<input type="radio" class="cnj_input"  name="cnjnum5" onKeyup="javascript:Chage_Money(5);onlyNum(cnjform.cnjnum5);" onClick="javascript:Chage_Money(5)" ; size="3" maxlength="3" style="text-align:center;">
</td>
<td align="right" bgcolor="white"><input type="text" class="cnj_input"  name="cnjcost4" size="7" readonly style="text-align:right;"> 원<br>
<input type="text" class="cnj_input"  name="cnjcost5" size="7" readonly style="text-align:right;"> 원
</td>
</tr>
 
 
 
 
 
 
 

<tr>
<td align="right" colspan="2" bgcolor="white">합  계  </td>
<td align="right" colspan="2" bgcolor="white"><input type="text" class="cnj_input"  name="total_cost" size="10" readonly style="text-align:right;"> 원</td>
</tr>
</table>
</form>

<script language="JavaScript">
document.write('<style>');
document.write('.cnj_input { border-width:1; border-style:solid; border-color:#000000; color:#0084D4; background-color:white;}');
document.write('</style>');
// 견적서 자동 계산하기
        function onlyNum(objtext1) {
        var inText = objtext1.value;
        var ret;
        for (var i = 0; i < inText.length; i++) {
        ret = inText.charCodeAt(i);
        if ((ret < 48) || (ret > 57)) {
        alert("숫자만을 입력하세요");
        objtext1.value = "";
        objtext1.focus();
        return false;
        }
        }
        return true;
        }
        var uppmesg;
        
              price_p = new Array(5); // 총 배열 숫자
              price_p[0] = 2000;  // 첫번째 제품 가격
              price_p[1] = 3500;  // 두번째 제품 가격
              price_p[2] = 5500;  // 세번째 제품 가격
              price_p[3] = 500;  // 네번째 제품 가격
              price_p[4] = 10500;  // 다섯번째 제품 가격
// 추가시
//             price_p[추가번호] = 가격;  // 추가 제품 가격
               
        total_cost = 0;  // 합계 기본값
        size_cost = new Array(0,0,0,0,0); // 배열숫자 만큼 0추가

function Chage_Money(num) {
    var f = document.cnjform;
    getcost(num)                        
    total_cost = 0;
    for (i=0; i<5; i++) { // 총 배열숫자와 동일해야함
      total_cost += size_cost[i];        
      f.total_cost.value = eval(total_cost);
    }
  }
// 아래는 수정할 필요 없음
  function getcost(stype){
    var f = document.cnjform;
    tempcost = 0;
    temp = "f.cnjnum";
    temp += stype;
    tempcost += eval(temp + ".value") * price_p[stype-1];
    
    cnjcost = "cnjcost" + stype + "";
    f.elements[cnjcost].value = tempcost;
    
    size_cost[stype-1] = tempcost;
  }
//-->
</SCRIPT>

이 질문에 댓글 쓰기 :

답변을 작성하시기 전에 로그인 해주세요.
전체 2
© SIRSOFT
현재 페이지 제일 처음으로