계산식 Input에 벨류값 바꾸면 계산이 안됩니다... 뭐가 문제일까요

계산식 Input에 벨류값 바꾸면 계산이 안됩니다... 뭐가 문제일까요

QA

계산식 Input에 벨류값 바꾸면 계산이 안됩니다... 뭐가 문제일까요

본문

계산식인데요...

 

글작성시는 0원이 뜨게 하고 작성된 글을 수정할때 0원이 뜨길래 수정하려고 해도 NaN 이라는 거만 뜨고

 

계산이 안되더라구여... 뭐가 문제일까요

 

<div id="footer">                                                                                    

   <p style="margin-top: 20px; color:#fff;">예상 견적가

     <input class="text-font1" type="text" name="wr_100" id="total" value="0" <?php echo  $write['wr_100']; ?> readonly="readonly">원

      <button type="submit" id="btn_submit" class="myButton" accesskey="s">작성완료</button>

   </p>

</div>

 

 

빨간색으로 표시해놓은 부분이 코드 부분 입니다.

 

Value="0"  이부분을 제가 뒤에 <?php 코드 지우고 나서 벨류안에다가

 

Value="<?php echo ($write['wr_100'])?$write['wr_100']:"0"; ?>"

 

이렇게 진행 하면 수정했을때 계산된 값을 잘 불러오긴 합니다.

 

근데 추가 계산 하려고 하는 순간 바로 NaN이 나와버립니다 ㅠ...

 

 

계산 스크립트 입니다.

--------------------------------------------------------------------------

<script>

function Calculator() {

    let total = Number(document.getElementById("total").defaultValue);

    for(let i = 1; i <= 100; i++){

        let chkbox = document.getElementById("price" + i);

        let qty = document.getElementById("qty" + i);

        if (chkbox && chkbox.checked) {

            total += Number(chkbox.value) * Number(qty.value);

        }

    }

    // 숫자 형식을 변경하여 total을 업데이트

    document.getElementById("total").value = total.toLocaleString();

}

 

for(let i = 1; i <= 100; i++) {

    let check = document.getElementById("price" + i);

    let check2 = document.getElementById("qty" + i);

    if (check) {

        check.onclick = Calculator;

    }

    if (check2) {

        check2.onchange = Calculator;

    }    

}

</script>

 

--------------------------------------------------------------------------

 

글 작성할때는 우선 잘됩니다.

 

근데 수정 할때만 계산식이 틀어져 버립니다...

 

이런경우 어떻게 해야될까요

 

글쓰기 할때 기본값 0  체크박스 클릭해서 가격 추가 될때마다 가격 추가로 오르고

 

글작성 누르면 저장이 됩니다 여기까지는 잘 됩니다.

 

글 수정할때 wr_100에 저장된 값을 잘 불러옵니다.

 

추가 계산을 하기 위해서 체크박스 클릭 하는 순간 NaN 이 라는 문구가 나옵니다..

 

어떻게 해결해야될까요..

이 질문에 댓글 쓰기 :

답변 1

1.

<input class="text-font1" type="text" name="wr_100" id="total" value="<?php echo  (int) $write['wr_100']; ?>" readonly="readonly">

 

2.

let total = Number(document.getElementById("total").defaultValue);

let total = 0;

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

회원로그인

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