본문 바로가기

Developer/Web

input 숫자만 입력 및 자릿수 구분표시

반응형

keydown 이벤트 이용시 input내 숫자를 읽어오지 못하므로 keyup 이벤트 이용한다.

동적인 이벤트이므로 해당 input의 아이디를 불러들여 계산

수량 : cnt_1, cnt_2 ...

단가 : price_1, price_2 ...

금액 : cost_1, cost_2 ...


$(document).on("keyup", ".number1", function(e) {
        if ((e.keyCode >=48 && e.keyCode <= 57) || (e.keyCode >=96 && e.keyCode <= 105) || e.keyCode == 8 || e.keyCode == 9) {

var text_id = this.id.replace("cnt_", "").replace("price_", "");

// 빈칸일 경우 0으로 계산

            if ( $("#cnt"+text_id).val() == "" ) {
                cnt = 0;
            }else {
                cnt = Number($("#cnt_"+text_id).val());
            }
            if ( $("#price_"+text_id).val() == "" ) {
                price = 0;
            }else {
                price = Number($("#price_"+text_id).val());
            }
            $("#cost_"+text_id).val(cnt * price);
        }else {

           // 입력된 내용이 숫자가 아닌경우 지워버림

            $(this).val( $(this).val().replace(/[^0-9]/g, '') );
        }

        // 계산 완료 후 결과값 자릿수 구분(쉼표표시)
        $("#cost_"+text_id).val($("#cost_"+text_id).val().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"));
    });

반응형

'Developer > Web' 카테고리의 다른 글

Classic ASP 날짜 구하기 1  (0) 2021.05.20
DOMSubtreeModified을 대체할 수 있는 MutationObserver  (1) 2020.11.03
Ajax 오류 메시지 관련...  (1) 2010.01.23
Ajax 전송(get 방식)  (0) 2009.12.06
Ajax 전송(post방식)  (0) 2009.12.06