숫자에 콤마찍어 보여주기
본문
아래의 소스는 체크박스와 라디오 버튼 체크시 기본값에다가 체크한 해당 값이 더해지는 소스입니다.
맨밑에 붉은색 소스는 합계가 나오는 곳인데 콤마를 찍어서 보여주려면 어찌해야할까요?
현재는 그냥 숫자만 나옵니다(예 : 123456789원) 123,456,789원 <=요렇게 보여지고 싶어요.
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script>
function car() {
// (기본)차량가격의 value를 받아 할당!
var basic_car = Number(document.getElementById("total").defaultValue);
// 체크박스 input 요소의 갯수 확인!
// var inputIndex = $("#estimate_tbody input"); // jQuery
var inputIndex = document.getElementById("plus").getElementsByTagName("input");
for (var i=1; i<=inputIndex.length; i++) {
var chkObj = document.getElementById("opt"+i);
if (chkObj.checked) {
// 가격 추가(+)
basic_car += Number(chkObj.value);
}
}
// (기본)차량가격 value 값이 추가+
document.getElementById("total").value = basic_car;
}
</script>
<div style="width:550px;">
<span class="font125">제품명</span><br><hr class="style-three">
<div id='sub_line'>
<ul>
<li class="t11" style="width:135px;padding:7px;height:20px;"><B>옵션명</B>
<li class="t222" style="width:185px;padding:7px;height:20px;"><B>추가 가격</B>
<li class="t22" style="width:185px;padding:7px;height:20px;"><B>선택</B></li>
</ul>
</div>
<div id='plus'>
<div id='sub_line'>
<ul>
<li class="t4-10"><label for="opt1">인조가죽시트</label>
<li class="t440">350,000원
<li class="t40"><!--옵션 체크 박스를 클릭할 때마다 car() 함수에 지정된 실행문 실행!--><input type="radio" name="opt1" id="opt1" value="0" onclick="car();" checked/><input type="radio" name="opt1" id="opt4" value="350000" onclick="car();"/></li>
</ul>
<ul>
<li class="t4-10"><label for="opt2">네비게이션</label>
<li class="t440">250,000원
<li class="t40"><input type="checkbox" name="opt2" id="opt2" value="250000" onclick="car();"/></li>
</ul>
<ul>
<li class="t4-10"><label for="opt3">선루프</label>
<li class="t440">440,000원
<li class="t40"><input type="checkbox" name="opt3" id="opt3" value="440000" onclick="car();"/></li>
</ul>
</div>
</div>
<div id='sub_line'>
<ul>
<li class="t4-1" style="width:135px;padding:7px;height:20px;">(기본)차량가격
<li class="t4" style="width:385px;padding:7px;height:20px;">13,450,000원</li>
</ul>
</div><br><br>
<div class="font130">총금액 : <input type="text" name="total" id="total" value="13450000" readonly="readonly" style="border: 0px;" class="font130"/></div>
</div>
답변 2
<?php
$test = 123456789;
echo $test;
// 123456789를 출력
echo number_format($test);
// 123,456,789를 출력
?>
아래와 같이 해결했습니다.
<script>
var number, nArr;
function number_format( number )
{
number=number.replace(/\,/g,"");
nArr = String(number).split('').join(',').split('');
for( var i=nArr.length-1, j=1; i>=0; i--, j++) if( j%6 != 0 && j%2 == 0) nArr[i] = '';
return nArr.join('');
}
</script>
body에 onload='total.value=number_format(total.value) 추가해서 해결했습니다.
그러나, 체크박스나 라디오 버튼 선택시 콤마가 없어져서 해당 div에는 onchange='total.value=number_format(total.value)' 를 추가해줬더니 아주 잘되네요.