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