그누는 아니지만.. 자바스크립트 질문 하나요. ㅠ

그누는 아니지만.. 자바스크립트 질문 하나요. ㅠ

QA

그누는 아니지만.. 자바스크립트 질문 하나요. ㅠ

본문

안녕하세요.

 

http://eonplace.co.kr/sub/sub04_01.html?ptype=view&idx=5548&page=1&code=interior01

 

위 주소인데요

 

오른쪽에 체크박스를 클릭하면 합계금액에 값이 ++ 되구요

 

라디오버튼을 클릭하면 20평형대는 *1, 30평은 *.1.5, 40평은 *2를 하는 간단한 기능입니다.

 

그런데... 아래 이미지에 설명드렸듯

2가지 문제가 있습니다.

 

1. 30평은 *1.5 (곱하기 1.5)가 되야하는데., 자바스크립트 소수점계산문제때문인지 안먹네요. ㅠ

 

2. 20평, 30평, 40평을 각각 클릭하면, 가격이 변해야하는데, 마지막 클릭한 가격에서 안바뀌고 있구요.

 

이걸 어찌 해결해야할까요? ㅠ

 

고수님들 봐주시면 감사.. 

 

988179499_1603445189.4736.jpg

이 질문에 댓글 쓰기 :

답변 2

일단 html쪽에서 1,5를 1.5로 바꾸시면 값이 바뀌는걸 확인하실 수 있습니다..

 

<input type="radio" name="radio_select" class="chk" onClick="itemMulti(this.form,1.5);" /> <label for="chk">30평형대</label>

 

 

그리고 스크립트 단에서 폼의 value값가지고 계산하려고 하지말고, 체크박스용 변수를 따로 선언한다음에, 폼을 넣어야 값이 수시로 변동됩니다.

 

<script>

var item_sum;
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;
}

function itemMulti(frm,mval)
{
    var mval2=Number(mval);

    //frm.total_sum.value = frm.total_sum.value*mval2;
    frm.total_sum.value = item_sum * mval2;

}

</script>

1. Float을 사용하세요. https://www.w3schools.com/jsref/jsref_parsefloat.asp

 

2. frm.total_sum.value 값이 변경되는 것은 위의 것을 선택할 때만..

 

즉 평형을 선택하면 이미 들어가 있는 값에 계속 곱해지게 됩니다.

 

평형을 선택할 때도 위의 합이 불러지게 만들면 될 것 같습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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