숫자값의 콤마찍기 재 질문 드립니다.

숫자값의 콤마찍기 재 질문 드립니다.

QA

숫자값의 콤마찍기 재 질문 드립니다.

본문

아래는 콤마찍기전에 스크립 계산을 적용한 내용입니다. 

계산은 잘되는데 문제는 출력값에 콤마가 안찍히네요.

구글링 해도 답이 없습니다.

 

 

            <a onclick="setmony(100000); reduce()" >  
            <input name="a" type="text" value="0" readonly id="a" size="7" > 
            </a>
              
            <a onclick="setmony2(500000); reduce()" > 
            <input name="b" type="text" value="0" readonly id="b" size="7" > 
            </a>

            <a onclick="setmony3(1000000); reduce()" >
            <input name="c" type="text" value="0" readonly id="c" size="7" > 
            </a>


<script language="JavaScript">
function setmony(i) {
 var x = document.getElementById("a");
 x.value = parseInt(x.value) + i;
}
</script>
<script language="JavaScript">
function setmony2(i) {
 var x = document.getElementById("b");
 x.value = parseInt(x.value) + i;
}
</script>
<script language="JavaScript">
function setmony3(i) {
 var x = document.getElementById("c");
 x.value = parseInt(x.value) + i;
}
</script>


<script language="JavaScript">
function reduce() {
    var a = parseInt(document.getElementById('a').value) | 0;
    var b = parseInt(document.getElementById('b').value) | 0;
    var c = parseInt(document.getElementById('c').value) | 0;
    document.getElementById('me_send_point2').value = a+b+c;

    var reduce = value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")
}
</script>    

<script language="JavaScript">
function setmony(i) {
 var x = document.getElementById("a");
 x.value = parseInt(x.value) + i;
var setmony = $('#a').text();
var setmony = setmony.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
</script>

--------------------------------------------------------------------------

아래는 합계값의 콤마 값인데 안되구요.

.replace(/\B(?=(\d{3})+(?!\d))/g, ",")

 

1번항목에 아래와 같이 줘도 안됩니다.

 

<script language="JavaScript">
function setmony(i) {
 var x = document.getElementById("a");
 x.value = parseInt(x.value) + i;
var setmony = $('#a').text();
var setmony = setmony.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
</script>
 

 

 

이 질문에 댓글 쓰기 :

답변 2


            <a onclick="setmony(100000); reduce()" >  
            <input name="a" type="text" value="0" readonly id="a" size="7" >
            </a>
              
            <a onclick="setmony2(500000); reduce()" >
            <input name="b" type="text" value="0" readonly id="b" size="7" >
            </a>
            <a onclick="setmony3(1000000); reduce()" >
            <input name="c" type="text" value="0" readonly id="c" size="7" >
            </a>
 
        me_send_point2 : <input id="me_send_point2">

<script language="JavaScript">
function setmony(i) {
 var x = document.getElementById("a");
 x.value = parseInt(x.value) + i;
}
</script>
<script language="JavaScript">
function setmony2(i) {
 var x = document.getElementById("b");
 x.value = parseInt(x.value) + i;
}
</script>
<script language="JavaScript">
function setmony3(i) {
 var x = document.getElementById("c");
 x.value = parseInt(x.value) + i;
}
</script>

<script language="JavaScript">
function reduce() {
    var a = parseInt(document.getElementById('a').value) || 0;
    var b = parseInt(document.getElementById('b').value) || 0;
    var c = parseInt(document.getElementById('c').value) || 0;
    var value = a+b+c;
    var reduce = value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")
    document.getElementById('me_send_point2').value = reduce;
}
</script>

알려주신 방법대로 하니 콤마가 한방에 해결 됬습니다.
합계부분에는 콤마가 잘나옵니다.

그런데 혹시요.

아래값 "a" 에도 콤마 찍을 방법이 있을런지요?

-------------------------------------------------------
<script language="JavaScript">
function setmony(i) {
 var x = document.getElementById("a");
 x.value = parseInt(x.value) + i;
}
</script>
----------------------------------------------
<a onclick="setmony(100000); reduce()" > 
            <input name="a" type="text" value="0" readonly id="a" size="7" >
</a>

답변감사합니다. 그런데 제가 초보라 이해가 잘 안가네요.
var reduce = value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",") 이함수를 빼고..
 <input name="a" type="text" value="0" readonly id="a" size="7" >

value="0" -> value="replace(/\B(?=(\d{3})+(?!\d))/g, ",")" 이렇게 해보란내용이신지요? ㅎㅎ


<input name="a" type="text" value="0" readonly id="a" size="7" onclick="setmony(this, 100000)">

<input name="b" type="text" value="0" readonly id="b" size="7" onclick="setmony(this, 500000)">

<input name="c" type="text" value="0" readonly id="c" size="7" onclick="setmony(this, 1000000)">

me_send_point2 : <input id="me_send_point2">

<script>
function comma(value, on) {
    if (on == true) {
        return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    } else {
        return value.replace(/,/g, '');
    }
}

function setmony(obj, n) {
    var value = parseInt(comma(obj.value, false)) + n;
    obj.value = comma(value, true);
    reduce();
}

function reduce() {
    var a = parseInt(comma(document.getElementById('a').value, false)) || 0;
    var b = parseInt(comma(document.getElementById('b').value, false)) || 0;
    var c = parseInt(comma(document.getElementById('c').value, false)) || 0;
    var value = a+b+c;
    var reduce = comma(value, true);
    document.getElementById('me_send_point2').value = reduce;
}
</script>

답변 감사합니다. 코드가 새롭게 된듯하네요. 알려주신 방법으로 하면 원키업 방식으로 되어 있어서 텍스트 부분을 클릭하게 되면 숫자가 찍히긴 합니다. 제가 해놓은 방식이 "+" 버튼을 클릭하게 되어 있어서 이걸 적용하기가..  다시 고민하다가 결국
 <label class="b" for="b"><i class="fa fa-plus-circle" style="font-size: 20px; font-weight:bold; color:#000; margin-top: 5px; float:right;"></i></label> 라벨로 클릭하게 만들어서 해결했습니다.^^

배르만 님 혹시 여기 아래 링크가 계속 해결이 힘든 상황인데요.
이거 방법이좀 있을까요? 여러분들이 봐주고는 있는데요 . 어떻게 보면 쉬운거 같은데 잘 안되네요.
안되는거 이거 하나만.. 남았는데 여기서 좀 막히네요.
염치불구하고 여쭤 봅니다.

https://sir.kr/qa/507159?sfl=mb_id%2C1&lstx=ckh0941

코드가 어질어질 하네요...
계산완료 값이 리턴 될때 콤마 펑션을 넣으세요...

답변을 작성하시기 전에 로그인 해주세요.
전체 21
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT