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

스크립트질문입니다. 채택완료

꽁치입니다 4년 전 조회 3,042

</p>

<p><script></p>

<p>function printName() { // input -> 값 전달하기

     const name = document.getElementById('name').value;

     document.getElementById("result").innerText = name;

 }

</script></p>

<p> </p>

<p><script type="text/javascript">

    function inputNumberAutoComma(obj) { //금액입력</p>

<p>        // 콤마( , )의 경우도 문자로 인식되기때문에 콤마를 따로 제거한다.

        var deleteComma = obj.value.replace(/\,/g, "");</p>

<p>        // 콤마( , )를 제외하고 문자가 입력되었는지를 확인한다.

        if (isFinite(deleteComma) == false) {

            alert("문자는 입력하실 수 없습니다.");

            obj.value = "";

            return false;

        }

        // 기존에 들어가있던 콤마( , )를 제거한 이 후의 입력값에 다시 콤마( , )를 삽입한다.

        obj.value = inputNumberWithComma(inputNumberRemoveComma(obj.value));

    }</p>

<p>    // 천단위 이상의 숫자에 콤마( , )를 삽입하는 함수

    function inputNumberWithComma(str) {</p>

<p>        str = String(str);

        return str.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, "$1,");

    }</p>

<p>    // 콤마( , )가 들어간 값에 콤마를 제거하는 함수

    function inputNumberRemoveComma(str) {</p>

<p>        str = String(str);

        return str.replace(/[^\d]+/g, "");

    }

</script>

 </p>

<p><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);"></p>

<p> </p>

<p><span id="deposit_money"><?php echo $wr_data['deposit_money']; ?></span> 원</p>

<p>

 

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

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

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

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

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

답변 2개

onchange='printName()'

name="wr_data[price]"

class="form-control input-sm"

value="" onkeyup="document.getElementById('deposit_money').innerText=( parseInt(this.value)|0)*1.1; inputNumberAutoComma(this);">

 

onkeyup은 하나밖에 없네요.

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

답변에 대한 댓글 1개

꽁치입니다
4년 전
1) document.getElementById('deposit_money').innerText=( parseInt(this.value)|0)*1.1;

2) inputNumberAutoComma(this);

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

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

onkeyup 

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

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

답변에 대한 댓글 3개

꽁치입니다
4년 전
[code]<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);">[/code]
엑스엠엘
4년 전
<input 두 개가 어떤 역할을 하는 건가요?
보통은 하나는 단가, 하나는 수량 이런 식인데요.
꽁치입니다
4년 전
<input> 은 한 개 입니다. 그 안에 두 개의 'onkeyup'을 넣었더니 질문 드렸던 문제가 발생하는거라서요..

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

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

로그인