계산식 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;