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,"));
});
'IT테크 > Web' 카테고리의 다른 글
Classic ASP 날짜 구하기 1 (1) | 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 |