onkeyup,onkeydown 질문입니다.

onkeyup,onkeydown 질문입니다.

QA

onkeyup,onkeydown 질문입니다.

본문

rate 텍스트란에  할인율을 넣어서, 자동적으로

price란에 계산되게 하려고합니다. 

예를들어 rate에 50 이라고 입력하면

자동적으로 price란에 25000 이라고 나오게 하고싶은데,

12500 이라고 나옵니다, onkeyup이 두번먹어서 그런거같은데,

요거를 해결할 방법이있을까요..?

 

 

<input type ="text" id="rate" name="rate" value="" onkeyup="Fun_rate(this.value)">

 

<input type ="text" id="price" name="price" value="50000">

 

<script>

function Fun_rate(value)

{

var price = $("#price").val();

var calc = price * (1-value/100);

 $("#price").val(calc);

}

</script>

이 질문에 댓글 쓰기 :

답변 3

onkeyup은 키를 한번만 눌러도 작동하기 때문에

5에서 한번 0에서 한번, 총 두 번이 적용됩니다.

 

submit 버튼이나 focusout 등을 이용하시면 좋을 것 같습니다.

https://codepen.io/anon/pen/vPYrWb?editors=1111
 

keyup은 입력할때마다 동작하므로 onchange 처럼 포커스가 아웃되었을때 또는 엔터같이 입력완료 버튼을 눌렀을때의 이벤트를 사용하셔야 합니다

 

볼피드님 방법이랑 같은 개념이며, 

FullstackCreative님이 말씀하신 focusout을 이용한 방법입니다.

 


    $("#rate").on("focusout", function() {    
        var price = $("#price").val();
        var calc = price * (1-$(this).val()/100);
        $("#price").val(calc);
    });
답변을 작성하시기 전에 로그인 해주세요.
전체 1,013
QA 내용 검색

회원로그인

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