JS表单自动求和的问题

<%ForS=1to10%>单价:<inputtype="text"id="CargoPrice<%=S%>"name="CargoPric... <%For S = 1 to 10%>单价: <input type="text" id="CargoPrice<%=S%>" name="CargoPrice<%=S%>" onKeyup="Amount(<%=S%>);TotalAmounts()">数量: <input type="text" id="CargoQuantity<%=S%>" name="CargoQuantity<%=S%>" onKeyup="Amount(<%=S%>);TotalAmounts()">总价: <input type="text" id="CargoAmount<%=S%>" name="CargoAmount<%=S%>"  onKeyup="Amount(<%=S%>);TotalAmounts()"><br><br><%Next%>金额: <input type="text" id="TotalAmount" name="TotalAmount"  onKeyup="TotalAmounts()"><script language="JavaScript">function Amount(i){ var Price=document.getElementById("CargoPrice"+i).value; var Quantity=document.getElementById("CargoQuantity"+i).value; var CargoAmount=Price*Quantity document.getElementById("CargoAmount"+i).value=CargoAmount.toFixed(2);}function TotalAmounts(){ var Totales=0; for(var i=1;i<11;i++)    {  var Amountes=document.getElementById("CargoAmount"+i).value;  Totales=Totales+Amountes; }  document.getElementById("TotalAmount").value=Totales.toFixed(2);}</script> 表单横向求金额没有问题,但是求总金额的时候出现了问题,总是提示:document.getElementById("TotalAmount").value=Totales.toFixed(2);这一行有问题,说是对象不支持此属性或方法,我找了半天也没找出来问题出在哪了! 请精通JS的朋友指点一下!谢谢! 展开
 我来答
huibo865686
2012-07-26 · TA获得超过916个赞
知道小有建树答主
回答量:325
采纳率:80%
帮助的人:262万
展开全部
代码有点乱,整理了一下
<script language="JavaScript">
function Amount(i){
var Price=document.getElementById("CargoPrice"+i).value;
var Quantity=document.getElementById("CargoQuantity"+i).value;
var CargoAmount=Price*Quantity
document.getElementById("CargoAmount"+i).value=CargoAmount.toFixed(2);
}
function TotalAmounts(){
var Totales=0;
for(var i=1;i<11;i++) {
var Amountes=document.getElementById("CargoAmount"+i).value;
Totales=Totales+Amountes;
}
document.getElementById("TotalAmount").value=Totales.toFixed(2);
}
</script>
上边的是你原先的js代码

下边的是我修改之后的
function Amount(i){
var Price=document.getElementById("CargoPrice"+i).value;
var Quantity=document.getElementById("CargoQuantity"+i).value;

//这里我加上了俩句转换方法,因为你直接获取value的时候,值是一个字符串类型
//没法像数字一样相乘,所以得转换成数字才可以相乘
var CargoAmount= parseFloat(Price) * parseFloat(Quantity);
document.getElementById("CargoAmount"+i).value=CargoAmount.toFixed(2);
}
function TotalAmounts(){
var Totales=0;
for(var i=1;i<11;i++) {
var Amountes=document.getElementById("CargoAmount"+i).value;

//同样,将获取的值转换成数字

Totales=Totales + parseFloat(Amountes);
}
document.getElementById("TotalAmount").value=Totales.toFixed(2);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-07-26
展开全部
zff
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式