<table width="100%" cellpadding="0" cellspacing="0" bgcolor="#c1ebff">
<tr style="background-color:#D1EEEE;">
<td width="25%">商品</td>
<td width="8%">单价</td>
<td width="1%"></td>
<td width="5%">数量</td>
<td width="1%"></td>
<td width="8%">金额</td>
<td width="8%">基本操作</td>
</tr>
<tr>
<td>诺基亚</td>
<td><input type="text" name="price" id="price" value="¥3,000.00" /></td>
<td>×</td>
<td><input type="text" name="quantity" id="quantity" value="2"/></td>
<td>=</td>
<td><span id="bb1" style="color: #FFB90F;font-weight: bold;">¥6,000.00</span></td>
</tr>
</table>
如何通过js 把 金额给算出来?
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<table width="100%" cellpadding="0" cellspacing="0" bgcolor="#c1ebff">
<tr style="background-color:#D1EEEE;">
<td width="25%">商品</td>
<td width="8%">单价</td>
<td width="1%"></td>
<td width="5%">数量</td>
<td width="1%"></td>
<td width="8%">金额</td>
<td width="8%">基本操作</td>
</tr>
<tr>
<td>诺基亚</td>
<td><input type="text" name="price" id="price" value="¥3,000.00" /></td>
<td>×</td>
<td><input type="text" name="quantity" id="quantity" value="2"/></td>
<td>=</td>
<td><span id="bb1" style="color: #FFB90F;font-weight: bold;">¥6,000.00</span></td>
</tr>
</table><script type="text/javascript">
//计算函数
function countAmount() {
var price = document.getElementById('price').value;
var quantity = document.getElementById('quantity').value;
//单价处理
price = price.replace(/[¥,]/g, '');
var amount = (price * quantity).toFixed(2);
//格式处理,添加千分位逗号
var ar = amount.toString().split('.');
var amount = [];
ar_tmp = ar[0].split('');
ar_tmp.reverse();
for(var i = 0; i < ar_tmp.length; i ++) {
(i + 1) % 3 == 0 ? amount.push(',' + ar_tmp[i]) : amount.push(ar_tmp[i]);
}
amount = '¥' + amount.reverse().join('') + '.' + ar[1];
document.getElementById('bb1').innerHTML = amount;
}document.getElementById('price').onchange = countAmount;
document.getElementById('quantity').onchange = countAmount;
</script>
</body>
</html>
请参考countAmount()函数中格式处理部分代码。
恩,是的,没有考虑到数值整数部分的位数为3的倍数的情况,修改一行代码即可:
(i + 1) % 3 == 0 && i < ar_tmp.length - 1 ? amount.push(',' + ar_tmp[i]) : amount.push(ar_tmp[i]);