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的朋友指点一下!谢谢!
展开
2个回答
展开全部
代码有点乱,整理了一下
<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);
}
<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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询