스크립트질문입니다. 채택완료
꽁치입니다
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개
4년 전
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년 전
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 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'을 넣었더니 질문 드렸던 문제가 발생하는거라서요..
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
2) inputNumberAutoComma(this);
원래는 1) 만 되어있었는데, 2)를 추가 한 겁니다. 그랬더니..자꾸 위 문제가 생겨서요..
2)를 제거 하거나 1)을ㅇ 제거 하고 2)만 넣으면 잘 작동 합니다.