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

계산 시 콤마 첨삭? 채택완료

굼떠 2년 전 조회 2,007

 

상단 이미지와 같은 폼을 제작하고 있습니다.

 

</p>

<p>$("#qty").change(function() {

price = $("#qty option:selected").val();

console.log(price);

sum = parseInt(price);

if(price) {

    $("#it_sum1").val(sum * 1000000);

    cal_sum();

}

});

var sum2 = 0;

$("#qty2").change(function() {

price2 = $("#qty2 option:selected").val();

console.log(price2);

sum2 = parseInt(price2);

if(price2) {

    $("#it_sum2").val(sum2 * 500000);

    cal_sum();

}

});

function cal_sum() {

    // $("#it_sum1").val().replace(/,/g,"");  

    var sum = parseInt($("#it_sum1").val()) + parseInt($("#it_sum2").val());

    $('#it_sum_all').val(sum);

    $('#it_sum_all').val($('#it_sum_all').val().replace(/\B(?=(\d{3})+(?!\d))/g, ","));

    var vat = sum * 0.1;

    $('#it_sum_vat').val(vat);

    $('#it_sum_vat').val($('#it_sum_vat').val().replace(/\B(?=(\d{3})+(?!\d))/g, ","));

    var total = sum + vat;

    $('#it_sum_total').val(total);

    $('#it_sum_total').val($('#it_sum_total').val().replace(/\B(?=(\d{3})+(?!\d))/g, ","));

};</p>

<p>

 

현재 스크립트는이렇게 되어있는데

#it_sum1 인풋에 콤마를 찍고싶습니다. 콤마를 넣는 정규식을 적용하였는데

cal_sum에서 합산될때 계산이 이상하게 되버리네요....

 

어떻게 해야 좋을까요?

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

답변 3개

채택된 답변
+20 포인트
2년 전

표현할때 comma 추가

https://github.com/gnuboard/gnuboard5/blob/master/js/common.js#L64

</p>

<p>function number_format(data)</p>

<p>

 

계산할때 comma 제거

https://github.com/gnuboard/gnuboard5/blob/master/js/common.js#L119

</p>

<p>function no_comma(data)</p>

<p>

 

</p>

<p><select id="qty">

    <option value=""></option>

    <option value="1">1</option>

    <option value="2">2</option>

</select>

<select id="qty2">

    <option value=""></option>

    <option value="1">1</option>

    <option value="2">2</option>

</select></p>

<p><ul>

<li><label>it_sum1 <input type="text" id="it_sum1" /></label></li>

<li><label>it_sum2 <input type="text" id="it_sum2" /></label></li>

<li><label>it_sum_all <input type="text" id="it_sum_all" /></label></li>

<li><label>it_sum_vat <input type="text" id="it_sum_vat" /></label></li>

<li><label>it_sum_total <input type="text" id="it_sum_total" /></label></li>

</ul></p>

<p><script>

$("#qty").change(function() {

    price = $("#qty option:selected").val();

    if (price == '') {

        $("#it_sum1").val('');

        cal_result_init();

        return;

    }

    // console.log(price);

    // sum = parseInt(price);

    sum = Number(price);

    if(price) {

        // $("#it_sum1").val(sum * 1000000);

        $("#it_sum1").val(number_format(sum * 1000000));

        cal_sum();

    }

});

var sum2 = 0;

$("#qty2").change(function() {

    price2 = $("#qty2 option:selected").val();

    if (price2 == '') {

        $("#it_sum2").val('');

        cal_result_init();

        return;

    }

    // console.log(price2);

    // sum2 = parseInt(price2);

    sum2 = Number(price2);

    if(price2) {

        // $("#it_sum2").val(sum2 * 500000);

        $("#it_sum2").val(number_format(sum2 * 500000));

        cal_sum();

    }

});

function cal_sum() {

    // // $("#it_sum1").val().replace(/,/g,"");  

    // var sum = parseInt($("#it_sum1").val()) + parseInt($("#it_sum2").val());

    // $('#it_sum_all').val(sum);

    // $('#it_sum_all').val($('#it_sum_all').val().replace(/\B(?=(\d{3})+(?!\d))/g, ","));

    // var vat = sum * 0.1;

    // $('#it_sum_vat').val(vat);

    // $('#it_sum_vat').val($('#it_sum_vat').val().replace(/\B(?=(\d{3})+(?!\d))/g, ","));

    // var total = sum + vat;

    // $('#it_sum_total').val(total);

    // $('#it_sum_total').val($('#it_sum_total').val().replace(/\B(?=(\d{3})+(?!\d))/g, ","));</p>

<p>    var sum = Number(no_comma($("#it_sum1").val())) + Number(no_comma($("#it_sum2").val()));

    $('#it_sum_all').val(number_format(sum));

    var vat = sum * 0.1;

    $('#it_sum_vat').val(number_format(vat));

    var total = sum + vat;

    $('#it_sum_total').val(number_format(total));

};

function cal_result_init() {

    $('#it_sum_all').val('');

    $('#it_sum_vat').val('');

    $('#it_sum_total').val('');

}

</script></p>

<p>

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

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

기본적으로 스크립트상에서 ,가 포함된 숫자형을 쓰시려고 하시면 실제로는 문자로 인식되기때문에

숫자형으로 형변환후에 처리를 하셔야 할거구요

 

input안에 들어가는 문자형으로도 표현은 가능하지만 그전에 연산은 하신후에 넣으시길 추천합니다.

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

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

$("#it_sum2").val();
대신에



 이런 방식도 한번 고려해 보세요.


$("#it_sum2").data('val');
로그인 후 평가할 수 있습니다

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

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

로그인