首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

js高手,怎么自动计算总额-解决就接贴

2012-02-25 
求助js高手,如何自动计算总额----在线等,解决就接贴产品名称单价数量强力大蒜素片5——代乐牌儿童营养口嚼片

求助js高手,如何自动计算总额----在线等,解决就接贴
产品名称                                                                   单价                       数量
强力大蒜素片                                                               5                           ——
代乐牌儿童营养口嚼片-草莓口味                             3                           ——
代乐牌儿童营养素粉-巧克力口味                             5                           ——
优质蛋白粉                                                                   7                           ——
草本浓缩速溶茶饮-柠檬口味                                     8                           ——
草本浓缩速溶茶饮-木莓口味                                     9                           ——
田园蔬果精萃组合                                                       10                         ——
草本膳食纤维粉                                                           11                         ——
蜂蜜花粉胶囊                                                               12                         ——
莓之宝胶囊                                                                   13                         ——
深层洁面乳                                                                   14.9                     ——
保湿柔肤水                                                                   15.5                     ——




总金额:       _____      
    功能要求,在填写数量的时候自动根据单价*数量写入总金额,数量可以不填      
    比如,我在      
    强力大蒜素片                                             5                           ____       这笔的数量上填写           5           那么金额的values=   5*5=25      
    然后      
    代乐牌儿童营养口嚼片-草莓口味                             3                           ____           在这笔的数量上填写       3              
    那么金额的       value=       25       +       3*3       =       34      
    以此类推,当数量不填写的时候       value=0      
    数据较多,我想从SQL数据库中直接调用数据,并让它自动计算,请高手帮忙!!谢谢!!

[解决办法]
<html xmlns= "http://www.w3.org/1999/xhtml ">
<head>
<meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 " />
<title> Untitled Document </title>
<script language= "javascript ">
function FormatNumber(srcStr,nAfterDot){
var srcStr,nAfterDot;
var resultStr,nTen;
srcStr = " "+srcStr+ " ";
strLen = srcStr.length;
dotPos = srcStr.indexOf( ". ",0);
if (dotPos == -1){
resultStr = srcStr+ ". ";
for (i=0;i <nAfterDot;i++){
resultStr = resultStr+ "0 ";
}
return resultStr;
} else{
if ((strLen - dotPos - 1) > = nAfterDot){
nAfter = dotPos + nAfterDot + 1;
nTen =1;
for(j=0;j <nAfterDot;j++){
nTen = nTen*10;
}
resultStr = Math.round(parseFloat(srcStr)*nTen)/nTen;
return resultStr;
} else{
resultStr = srcStr;
for (i=0;i <(nAfterDot - strLen + dotPos + 1);i++){
resultStr = resultStr+ "0 ";
}
return resultStr;
}
}
}


function calTotal()
{ var qldsspJG=document.form1.qldsspJG.value;
var qldsspSL=document.form1.qldsspSL.value;
var etyykjpJG=document.form1.etyykjpJG.value;
var etyykjpSL=document.form1.etyykjpSL.value;
var zonge;
if (isNaN(qldsspJG)){
alert( "Please confirm the qldsspJG is numeric! ");
document.form1.qldsspJG.focus();
document.form1.qldsspJG.select();
}
if (isNaN(qldsspSL)){
alert( "Please confirm the qldsspSL is numeric! ");
document.form1.qldsspSL.focus();
document.form1.qldsspSL.select();
}
if (isNaN(etyykjpJG)){
alert( "Please confirm the etyykjpJG is numeric! ");
document.form1.etyykjpJG.focus();
document.form1.etyykjpJG.select();
}
if (isNaN(etyykjpSL)){
alert( "Please confirm the etyykjpSL is numeric! ");
document.form1.etyykjpSL.focus();


document.form1.etyykjpSL.select();
}
if (qldsspSL== " "){qldsspSL=0;}
if (etyykjpSL== " "){etyykjpSL=0;}
if (!isNaN(qldsspJG) && !isNaN(qldsspSL) && !isNaN(etyykjpJG) && !isNaN(etyykjpSL)){
zonge=parseFloat(qldsspJG)*parseFloat(qldsspSL)+parseFloat(etyykjpJG)*parseFloat(etyykjpSL);
document.form1.ze.value=FormatNumber(zonge,2);}
}
</script>
</head>

<body>
<form id= "form1 " name= "form1 " method= "post " action= " ">
<table width= "647 " border= "1 " cellspacing= "0 " cellpadding= "0 " style= "border:solid 1px #cccccc; ">
<tr>
<td width= "263 " height= "22 " align= "center "> 名称 </td>
<td width= "175 " align= "center "> 价格 </td>
<td width= "209 " align= "center "> 数量 </td>
</tr>
<tr>
<td height= "22 "> 强力大蒜素片 : </td>
<td> <input type= "text " name= "qldsspJG " value= "5 " /> </td>
<td> <input type= "text " name= "qldsspSL " onchange= "javascript:calTotal() " /> </td>
</tr>

<tr>
<td height= "22 "> 代乐牌儿童营养口嚼片-草莓口味 : </td>
<td> <input type= "text " value= "3 " name= "etyykjpJG " /> </td>
<td> <input type= "text " name= "etyykjpSL " onchange= "javascript:calTotal() " /> </td>
</tr>
<tr>
<td height= "22 "> 总额: </td>
<td> <input type= "text " name= "ze " /> </td>
<td> &nbsp; </td>
</tr>
</table>
<p>
<input type= "submit " name= "Submit " value= "Submit " />
<input type= "reset " name= "Submit2 " value= "Reset " />
</p>
</form>
</body>
</html>
[解决办法]
<script>
function sumprice(obj1, obj2, obj3){
var totalprice = 0;
var num;
if (obj3.length == 2){ //如果只有一个商品
if (!isNaN(parseInt(obj2.value))){num = parseInt(obj2.value);}else{num = 0;}
obj3[0].value = parseFloat(obj1.value) * num;
totalprice = totalprice + parseFloat(obj1.value) * num;
}else{ //多个商品
for(var i = 0; i < obj3.length - 1; i++){
if (!isNaN(parseInt(obj2[i].value))){num = parseInt(obj2[i].value);}else{num = 0;}
obj3[i].value = parseFloat(obj1[i].value) * num;
totalprice = totalprice + parseFloat(obj1[i].value) * num;
}
}
obj3[obj3.length - 1].value = totalprice;
}
</script>

<table>
<tr>
<td> 产品名称 </td>
<td> 单价 </td>
<td> 数量 </td>
<td> 小计 </td>
</tr>
<tr>
<td> 强力大蒜素片 </td>
<td> <input type= "text " name= "price " value= "5 " style= "border:0; " readonly> </td>
<td> <input type= "text " name= "amount " onkeyup= "sumprice(price, amount, total) "> </td>
<td align= "right "> <input type= "text " name= "total " style= "border:0; text-align:right; " readonly> </td>


</tr>
<tr>
<td> 代乐牌儿童营养口嚼片-草莓口味 </td>
<td> <input type= "text " name= "price " value= "3 " style= "border:0; " readonly> </td>
<td> <input type= "text " name= "amount " onkeyup= "sumprice(price, amount, total) "> </td>
<td align= "right "> <input type= "text " name= "total " style= "border:0; text-align:right; " readonly> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td align= "right "> <input type= "text " readonly style= "border:0; text-align:right; color:red; width: 10; " name= "total "> </td>
</tr>
</table>

热点排行