스크립트질문입니다.
본문
<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);">
onkeyup은 하나밖에 없네요.
답변을 작성하시기 전에 로그인 해주세요.