소수점 입력을 하고 싶습니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
소수점 입력을 하고 싶습니다.

QA

소수점 입력을 하고 싶습니다.

본문

소수점으로 표기를 하는것은 number_format으로 표기가 되더라구요. 

그런데 입력을 하려니 자동으로 계산을 해주는 소스를 이용해서 만들고 있는데 입력을 해보니 

자동으로 계산이 되는 인풋필드는 안먹네요...ㅠㅠ

wr_1_2*wr_1_3=wr_1_4(여기에 값이 자동으로 나옵니다.)

 

DB는 필드를 float를 변경했습니다. 

 


<td><input id="wr_1_2" type="text" name="wr_1_2" value="<?php echo $wr_1[2]?>" class="frm_input full_input num_only num_comma num_sum" placeholder=""/></td>
<td><input id="wr_1_3" type="text" name="wr_1_3" value="<?php number_format($wr_1[3], 2);?>" class="frm_input full_input num_only num_sum" placeholder=""/><--이 필드는 소숫점이 입력됩니다.</td>
<td><input id="wr_1_4" type="text" name="wr_1_4" value="<?php number_format($wr_1[4], 2);?>" class="frm_input full_input num_only num_sum" placeholder=""/><--자동계산이 되는 이 필드는 소숫점이 안나오면서 앞의 값의 소숫점이하 값은 무시하고 나옵니다. </td>

 

아래는 자바스크립트 부분입니다. 


<script type="text/javascript">
      $(function(){
      $('input.num_only').on('keyup',function(){
                var cnt = $(".exam input.num_sum").length;     
                console.log(cnt);
        for( var i=1; i< cnt; i++){
           var sum = parseInt($(this).val() || 0 );
           sum++
          console.log(sum);
        }
          var sum1 = parseInt($("#wr_1_2").val() || 0 ); // input 값을 가져오며 계산하지만 값이 없을경우 0이 대입된다  뒷부분에 ( || 0 ) 없을경우 합계에 오류가 생겨 NaN 값이 떨어진다
          var sum2 = parseInt($("#wr_1_3").val() || 0);
    
                var sum = sum1*sum2;
                console.log(sum);
                $("#wr_1_4").val(sum);
              });
      });
    </script>

 

혹시 아시는 분이나 알고 계신 참고사항이 있으시면 부탁드립니다. php를 잘 몰라서 그누보드 사이트에서 많은 도움을 받아가며 만들고 있습니다. 도움을 주시는 모든분들에게 감사합니다. 

이 질문에 댓글 쓰기 :

답변 3

위에 작성하신 자바스크립트 코드에서 이해 안 되는게 많네요.

 

1. $(".exam input."num_sum) 의 길이를 가져왔는데 for문에서 행해지는 부분이 전혀 이해가 안 되고요. 저 for문을 왜 돌고 왜 sum이라는 변수에 $(this).val()로 가져오는건지...가장 중요한건 저기에서 $(this)가 가리키고 있는게 뭔지 확인 해보세요. 아마 현재 input을 누른 $(this)를 가지고 있을듯 하네요. 그럼 현재 변경한 값이 3.33이면

 

2번 반복(for가 1부터이고 cnt는 3){

  var sum = 3(parseInt이므로)

  sum++ -> sum = 4 

  console.log(sum) -> 4

}

 

 

2. var sum1 = parsetInt()   / var sum2= parseInt() 이 부분도 이해가 안 되네요. sum1과 sum2 변수게 값을 넣고 sum1*sum2를 한 값을 $("wr_1_4").val(sum)에 넣는다. 라는 게 맞는죠? 그런데 왜 parseInt를 쓰셨나요? parseFloat이 맞는듯 한데

 

지금 코드만 봤을때 var sum1 부분부터 아래까지 코드만 있으면 동작을 해야 되는거 같구요.

위에 필요없는 부분들은 주석 처리 하시고 event가 발생하는지랑 sum1, sum2값이 제대로 들어오는지 console.log찍어서 확인 해보세요.

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

회원로그인

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