스크립트질문입니다.

스크립트질문입니다.

QA

스크립트질문입니다.

본문


<script>
function printName() { // input -> 값 전달하기
     const name = document.getElementById('name').value;
     document.getElementById("result").innerText = name;
 }
</script>
 
<script type="text/javascript">
    function inputNumberAutoComma(obj) { //금액입력
        // 콤마( , )의 경우도 문자로 인식되기때문에 콤마를 따로 제거한다.
        var deleteComma = obj.value.replace(/\,/g, "");
        // 콤마( , )를 제외하고 문자가 입력되었는지를 확인한다.
        if (isFinite(deleteComma) == false) {
            alert("문자는 입력하실 수 없습니다.");
            obj.value = "";
            return false;
        }
        // 기존에 들어가있던 콤마( , )를 제거한 이 후의 입력값에 다시 콤마( , )를 삽입한다.
        obj.value = inputNumberWithComma(inputNumberRemoveComma(obj.value));
    }
    // 천단위 이상의 숫자에 콤마( , )를 삽입하는 함수
    function inputNumberWithComma(str) {
        str = String(str);
        return str.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, "$1,");
    }
    // 콤마( , )가 들어간 값에 콤마를 제거하는 함수
    function inputNumberRemoveComma(str) {
        str = String(str);
        return str.replace(/[^\d]+/g, "");
    }
</script>
 
<input type="text" id='name' onchange='printName()' name="wr_data[price]" class="form-control input-sm" value="<?php echo $wr_data['price'];?>" onkeyup="document.getElementById('deposit_money').innerText=( parseInt(this.value)|0)*1.1; inputNumberAutoComma(this);">
 
<span id="deposit_money"><?php echo $wr_data['deposit_money']; ?></span> 원

 

위 내용은  input 값에 숫자를 넣으면 결과값이 뿌려주는 함수 입니다. 

문제는  onkeyup 을 두개를 넣으면 문제가 발생합니다. 

하나만 넣으면 문제가 없는데 부득히 2개를 넣어야 하는데...

출력값은 부가세 처럼 10% 를 더해서 출력되는 것인데 결과 값은  1,000 다위가 넘어가면 1.1 로만 나옵니다.  어떻게 해야 하죠...

이 질문에 댓글 쓰기 :

답변 2

onkeyup 

두 개 넣으 소스를 보여 주세요.

<input type="text" id='name' onchange='printName()' name="wr_data[price]" class="form-control input-sm" value="<?php echo $wr_data['price'];?>" onkeyup="document.getElementById('deposit_money').innerText=( parseInt(this.value)|0)*1.1; inputNumberAutoComma(this);">

<input type="text" id='name'

onchange='printName()'

name="wr_data[price]"

class="form-control input-sm"

value="<?php echo $wr_data['price'];?>" onkeyup="document.getElementById('deposit_money').innerText=( parseInt(this.value)|0)*1.1; inputNumberAutoComma(this);">

 

onkeyup은 하나밖에 없네요.

1) document.getElementById('deposit_money').innerText=( parseInt(this.value)|0)*1.1;

2) inputNumberAutoComma(this);

원래는 1) 만 되어있었는데, 2)를 추가 한 겁니다. 그랬더니..자꾸 위 문제가 생겨서요..
2)를 제거 하거나 1)을ㅇ 제거 하고 2)만 넣으면 잘 작동 합니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 88
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT