当我更改数量以反映新成本(数量*价格)时,我正在尝试更新此字段(订单成本)
<td class="result" align="right">$<Input type="text" maxLength="9" style="text-align:right; width:55px;" align="right" id="OC<%=i %>" value="<%=formatnumber(rstBevInventory("avg_unit_cost"),2)*proposed %>"/></td>
它计算原始总数,但是当我更改数量时,它会调用此Javascript函数:
function reCalcOrder(i){
document.getElementById("OC"+i).value = document.getElementById("P"+i).value * document.getElementById("Q"+i).value;
cost = document.getElementById("OC"+i).value;
Math.round(cost * 100) / 100;
document.getElementById("OC"+i).set("value", "cost");
if (document.getElementById("Q"+i).value < 0){
document.getElementById("Q"+i).value = 0;
}
}
我得到太多的数字,看起来这是因为Javascript处理乘法的方式。有没有办法在更改数量字段时让ASP做出反应?因为ASP似乎没有问题地进行数学计算。
提前致谢!
答案 0 :(得分:1)
是的,有,使用Ajax。但我相信如果你改变这一行,你也会解决问题:
Math.round(cost * 100) / 100;
到
cost = Math.round(cost * 100) / 100;
另一种选择是使用Number.prototype.toFixed
:
cost = cost.toFixed(2);