javascript좀 봐주세요

javascript좀 봐주세요

QA

javascript좀 봐주세요

본문


  Q1. 질문1<br/><br/>
   <input type="radio" name="select1" value="0" onClick="sum()"> 1 (0점)<br/>
   <input type="radio" name="select1" value="1" onClick="sum()"> 2 (1점)<br/>
   <input type="radio" name="select1" value="2" onClick="sum()"> 3 (2점)<br/>
   <input type="radio" name="select1" value="3" onClick="sum()"> 4 (3점)<br/><br/>
  Q2. 질문2<br/><br/>
   <input type="radio" name="select2" value="0" onClick="sum()"> 1 (0점)<br/>
   <input type="radio" name="select2" value="1" onClick="sum()"> 2 (1점)<br/><br/>
  Q3. 질문3<br/><br/>
   <input type="radio" name="select3" value="0" onClick="sum()"> 1 (0점)<br/>
   <input type="radio" name="select3" value="1" onClick="sum()"> 2 (1점)<br/><br/>
  Q4. 질문4<br/><br/>
   <input type="radio" name="select4" value="0" onClick="sum()"> 1 (0점)<br/>
   <input type="radio" name="select4" value="1" onClick="sum()"> 2 (1점)<br/>
   <input type="radio" name="select4" value="2" onClick="sum()"> 3 (2점)<br/>
   <input type="radio" name="select4" value="3" onClick="sum()"> 4 (3점)<br/><br/>
  Q5. 질문5<br/><br/>
   <input type="radio" name="select5" value="0" onClick="sum()"> 1 (0점)<br/>
   <input type="radio" name="select5" value="1" onClick="sum()"> 2 (1점)<br/><br/>
  Q6. 질문6<br/><br/>
   <input type="radio" name="select6" value="0" onClick="sum()"> 1 (0점)<br/>
   <input type="radio" name="select6" value="1" onClick="sum()"> 2 (1점)<br/><br/>
 
 총점 : <input type="text" name="txtSum" id="txtSum" value="0" readonly>

   <script type="text/javascript">
  function sum(){
   var add1 = $(':radio[name="select1"]:checked').val();
   var add2 = $(':radio[name="select2"]:checked').val();
   var add3 = $(':radio[name="select3"]:checked').val();
   var add4 = $(':radio[name="select4"]:checked').val();
   var add5 = $(':radio[name="select5"]:checked').val();
   var add6 = $(':radio[name="select6"]:checked').val();
   var sum = (parseInt(add1) + parseInt(add2) + parseInt(add3) + parseInt(add4) + parseInt(add5) + parseInt(add6));
   document.getElementById("txtSum").value = sum;
  }
   </script>

라디오버튼으로 선택 후 각 value 값을 더해서 text 박스에 넣으려고 합니다

6개 전부를 선택하면 합산하여 나오지만 하나하나 선택하면 text박스에 Nan이 뜹니다.

선택할 때마다 실시간으로 text박스에 더한값이 나오게 하려면 어떻게 해야하나요?

이 질문에 댓글 쓰기 :

답변 2

선택된 것이 없는 상태에서 생기는 오류이니,

아래와 같이 0점에 해당하는 항목을 선택된 것으로 처리하면 될것 같습니다.

 

<input type="radio" name="select1" value="0" onClick="sum()" checked

...

<input type="radio" name="select2" value="0" onClick="sum()" checked 

...

<input type="radio" name="select3" value="0" onClick="sum()" checked 

...

<input type="radio" name="select4" value="0" onClick="sum()" checked 

...

<input type="radio" name="select5" value="0" onClick="sum()" checked 

...

<input type="radio" name="select6" value="0" onClick="sum()" checked

우선 NaN 이란 Not as Number 의 줄임말입니다.

하나의 값이 숫자여도 parseInt 를 처리하는 부분이 null 이라면 숫자로 표현할 수 없죠 그래서 나타나는 에러입니다.

위에 답변처럼 디폴트를 checked 하는 방법도 있고 

애초에 각각의 변수 add1~add6 까지의 디폴트 값을 0으로 잡아주고 sum 하시면 나오지 않는 이슈입니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 15
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT