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 등을 이용하시면 좋을 것 같습니다.
댓글을 작성하려면 로그인이 필요합니다.
볼피드님 방법이랑 같은 개념이며,
FullstackCreative님이 말씀하신 focusout을 이용한 방법입니다.
$("#rate").on("focusout", function() {
var price = $("#price").val();
var calc = price * (1-$(this).val()/100);
$("#price").val(calc);
});
댓글을 작성하려면 로그인이 필요합니다.
https://codepen.io/anon/pen/vPYrWb?editors=1111
keyup은 입력할때마다 동작하므로 onchange 처럼 포커스가 아웃되었을때 또는 엔터같이 입력완료 버튼을 눌렀을때의 이벤트를 사용하셔야 합니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인