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);
});
답변을 작성하시기 전에 로그인 해주세요.