키입력시 콤마제거 후 자동계산 하기

키입력시 콤마제거 후 자동계산 하기

QA

키입력시 콤마제거 후 자동계산 하기

답변 2

본문


$(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;
    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);
        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; //총 합계 구하기
     $("#wr_12").val(sum);
 });
});
 

 

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

어찌해야 할까요?

이 질문에 댓글 쓰기 :

답변 2

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

자답입니다.

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

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

 


        function comma(str) {//콤마찍기
        str = String(str);
        return str.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, '$1,');
    }
        function uncomma(str) {//콤마풀기
           str = String(str);
           return str.replace(/[^\d]+/g, '');
      }
$(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 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);
            var sum = sum1 - sum2 - sum3- sum4 - sum5 - sum6 - sum7 - sum8 - sum9 - sum10 - sum11;
            sum = comma(sum);
             $("#wr_12").val(sum);
        });
});
 
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 34
© SIRSOFT
현재 페이지 제일 처음으로