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

키입력시 콤마제거 후 자동계산 하기 채택완료

</p>

<p>$(function() {

        $('input.num_sum').on('keyup', function() {

      if ($(this).val() != null && $(this).val() != '') {

        var tmps = parseInt($(this).val().replace(/[^0-9]/g, '')) || '0';

        var tmps2 = tmps.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,');

        $(this).val(tmps2);

      }

    });

           var cnt = $(".tg input.num_sum").length;</p>

<p>    for( var i=1; i< cnt; i++){

         var sum = parseInt($(this).val() || 0 );

          sum++

     }

        var sum1 = parseInt($("#wr_8").val() || 0 );

                var sum2 = parseInt($("#wr_9").val() || 0);

        var sum3 = parseInt($("#wr_10").val() || 0);

        var sum4 = parseInt($("#wr_11").val() || 0);

        var sum5 = parseInt($("#wr_30").val() || 0);

        var sum6 = parseInt($("#wr_31").val() || 0);

          var sum7 = parseInt($("#wr_32").val() || 0);

               var sum8 = parseInt($("#wr_33").val() || 0);

                var sum9 = parseInt($("#wr_34").val() || 0);

                var sum10 = parseInt($("#wr_35").val() || 0);

                var sum11 = parseInt($("#wr_14").val() || 0);</p>

<p>        for( var i=1; i< 12; i++){ //콤마제거

             var sum+i = str.replace(/,/g,"");

             }

     var sum = sum1 - sum2 - sum3 - sum4 - sum5 - sum6 - sum7 - sum8 - sum9 - sum10 - sum11; //총 합계 구하기</p>

<p>     $("#wr_12").val(sum);

 });

});

 </p>

<p>

 

위와같이 짰는데 콤마제거가 되지 않습니다.

어찌해야 할까요?

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

답변 2개

채택된 답변
+20 포인트

str 이라는 변수가 선언도 되지 않았고 값도 없습니다.

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

답변에 대한 댓글 1개

var sum+i = sum+i.replace(/,/g,"");
이렇게 바꾸어도 안되네요.

콤마제거해서 계산후 다시 콤마를 찍어야 하는데 ㅜㅜ

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

자답입니다.

실시간으로 input 값을 콤마로 입력 받아서 콤마 제거 후 int로 변환해서 계산한 후 최종값을 다시 콤마 넣고 나오는 소스입니다.

parseInt() 함수가 정수형이므로 콤마 계산이 불가 했습니다.

 

</p>

<p>        function comma(str) {//콤마찍기

        str = String(str);

        return str.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, '$1,');

    }</p>

<p>        function uncomma(str) {//콤마풀기

           str = String(str);

           return str.replace(/[^\d]+/g, '');

      }</p>

<p>$(function(){

    $('input.num_sum').on('keyup',function(){

        if ($(this).val() != null && $(this).val() != '') {

          var tmps = parseInt($(this).val().replace(/[^0-9]/g, '')) || '0';

            var tmps2 = tmps.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,');

            $(this).val(tmps2);

        }</p>

<p>            var sum1 = parseInt(uncomma($("#wr_8").val()) || 0 ); // input 값을 가져오며 계산하지만 값이 없을경우 0이 대입된다  뒷부분에 ( || 0 ) 없을경우 합계에 오류가 생겨 NaN 값이 떨어진다

            var sum2 = parseInt(uncomma($("#wr_9").val()) || 0);

            var sum3 = parseInt(uncomma($("#wr_10").val()) || 0);

            var sum4 = parseInt(uncomma($("#wr_11").val()) || 0);

            var sum5 = parseInt(uncomma($("#wr_30").val()) || 0);

            var sum6 = parseInt(uncomma($("#wr_31").val()) || 0);

            var sum7 = parseInt(uncomma($("#wr_32").val()) || 0);

                        var sum8 = parseInt(uncomma($("#wr_33").val()) || 0);

                        var sum9 = parseInt(uncomma($("#wr_34").val()) || 0);

                        var sum10 = parseInt(uncomma($("#wr_35").val()) || 0);

                        var sum11 = parseInt(uncomma($("#wr_14").val()) || 0);</p>

<p>            var sum = sum1 - sum2 - sum3- sum4 - sum5 - sum6 - sum7 - sum8 - sum9 - sum10 - sum11;

            sum = comma(sum);

             $("#wr_12").val(sum);

        });</p>

<p>});

 </p>

<p>

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

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

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

로그인

전체 질문 목록

🐛 버그신고