키입력시 콤마제거 후 자동계산 하기
본문
$(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);
});
});
답변을 작성하시기 전에 로그인 해주세요.