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

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

QA

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

답변 1

본문

계산식인데요...

 

글작성시는 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;

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 121
© SIRSOFT
현재 페이지 제일 처음으로