테스트 사이트 - 개발 중인 베타 버전입니다

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

홈피공장장 5년 전 조회 1,416

안녕하세요.

 

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평을 각각 클릭하면, 가격이 변해야하는데, 마지막 클릭한 가격에서 안바뀌고 있구요.

 

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

 

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

 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트

일단 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개

홈피공장장
5년 전
. 를 , 로 하다니.. 멍청한 짓을 햇네요ㅕ. ㅠ.

감사합니다.!!!

댓글을 작성하려면 로그인이 필요합니다.

5년 전

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

 

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

 

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

 

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

홈피공장장
5년 전
넵. 위의 분 소스 참조해서 수정했습니다.
잘 되네요..

답변 감사드립니다!

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인