채택완료

자동계산에 콤마 찍는 방법이 있나요?

2016-01-18 (월) 16:19:27 6,974

여기저기 검색을 많이 해보아도 계산식에 콤마를 포함하여 입금되고 출력값에 콤마를 포함하여 출력되는 소스가 없어서 질문 올립니다.

우선 아래의 소스는 입력1과 입력2에 숫자를 입력받아 합계를 출력하는 소스입니다.

Copy
<html><head><meta http-equiv="Content-Type" content="application/vnd.ms-excel; charset=UTF-8"></head><body><script language='javascript'> function sum5(){   var wr_51 = document.getElementById('wr_51');   var wr_52 = document.getElementById('wr_52');   var wr_53 = document.getElementById('wr_53');   wr_53.value = Number(wr_51.value)+Number(wr_52.value); }</script>입력1<input size=11 style='text-align:right' name=wr_51 id="wr_51" itemname="1" value="" onkeyup="sum5();">입력2<input size=11 style='text-align:right' name=wr_52 id="wr_52" itemname="1" value="" onkeyup="sum5();">합계<input size=11 style='text-align:right' name=wr_53 id="wr_53" itemname="1" value="" onkeyup="sum5();"></body></html>

이렇게 실행하면

6ed18c3bd00c9f226ee20f18af4e0479_1453101684_1662.jpg

 

이렇게 출력이 되는데요

이걸

 6ed18c3bd00c9f226ee20f18af4e0479_1453101690_8949.jpg 

이렇게 되게 하고싶습니다.

콤마 찍기 풀기에 대해 검색해보면

Copy
<script language='javascript'> //콤마찍기function comma(str) {    str = String(str);    return str.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, '$1,');}//콤마풀기function uncomma(str) {    str = String(str);    return str.replace(/[^\d]+/g, '');}function inputNumberFormat(obj) {    obj.value = comma(uncomma(obj.value));}</script><input type="text" onkeyup="inputNumberFormat(this)" >

이렇게 나오는데요 이걸 적용하는걸 잘 모르겠습니다.

그럼 부탁드립니다.

|

답변 3개 / 댓글 4개

채택된 답변
+20 포인트
2016-01-18 (월) 16:40:22
Copy
<html><head><meta http-equiv="Content-Type" content="application/vnd.ms-excel; charset=UTF-8"><script language='javascript'>//콤마찍기function comma(str) {    str = String(str);    return str.replace(/(\d)(?=(?:\d{3})+(?!\d))/g, '$1,');}//콤마풀기function uncomma(str) {    str = String(str);    return str.replace(/[^\d]+/g, '');}function inputNumberFormat(obj) {    obj.value = comma(uncomma(obj.value));}</script> </head><body><script language='javascript'>function sum5(){  var wr_51 = document.getElementById('wr_51');  var wr_52 = document.getElementById('wr_52');  var wr_53 = document.getElementById('wr_53');   wr_53.value = comma(Number(uncomma(wr_51.value))+Number(uncomma(wr_52.value)));}</script>입력1<input size=11 style='text-align:right' name=wr_51 id="wr_51" itemname="1" value="" onkeydown="inputNumberFormat(this)" onkeyup="sum5()">입력2<input size=11 style='text-align:right' name=wr_52 id="wr_52" itemname="1" value="" onkeydown="inputNumberFormat(this)" onkeyup="sum5()">합계<input size=11 style='text-align:right' name=wr_53 id="wr_53" itemname="1" value="" onkeydown="inputNumberFormat(this)" onkeyup="sum5()"></body> </html>

답변에 대한 댓글 2개

감사합니다... 입력은 이상하게 컴마의 자릿수가 안맞지만 계산값은 잘 나오네요...
어디가 조금 잘못된것같은데 .그걸 찾는건 제 몫이겠죠... ^^
수고하셨습니다.
[code]
입력1<input size=11 style='text-align:right' name=wr_51 id="wr_51" itemname="1" value="" onkeyup="inputNumberFormat(this); sum5()">
입력2<input size=11 style='text-align:right' name=wr_52 id="wr_52" itemname="1" value="" onkeyup="inputNumberFormat(this); sum5()">
합계<input size=11 style='text-align:right' name=wr_53 id="wr_53" itemname="1" value="" onkeyup="inputNumberFormat(this); sum5()">
[/code]

이걸로 덮어써보셔요..
2016-01-18 (월) 16:51:29

바케스터 // 거기까지는 확인을안했네요..

입력1<input size=11 style='text-align:right' name=wr_51 id="wr_51" itemname="1" value="" onkeyup="inputNumberFormat(this); sum5()">

입력2<input size=11 style='text-align:right' name=wr_52 id="wr_52" itemname="1" value="" onkeyup="inputNumberFormat(this); sum5()">

합계<input size=11 style='text-align:right' name=wr_53 id="wr_53" itemname="1" value="" onkeyup="inputNumberFormat(this); sum5()">

그냥 이걸로 덮어 씌우시면 되겠습니다 ..

답변에 대한 댓글 1개

넵... 잘 되네요.. 정말 많은 도움이 되었습니다. 감사합니다.

콤마 찍는건 문제가 없는데,

콤마 찍은값에 콤마를 삭제하고 다시 계산해서 콤마를 찍어야 되는 문제가 있네요

답변에 대한 댓글 1개

다시 계산 하실때는 문자열.replace(',' '')처리를 해주시면 됩니당 `ㅡ`

답변을 작성하려면 로그인이 필요합니다.