当修改商品数量时候,金额小计和商品数量合计,总金额合计会自动实时计算并显示,而不需要刷新页面。
请参考如下的源代码,在此基础上实现:<form action="shopcarta.asp" method="post" name="form1">
<table border=1 width=100%>
  <tr bgcolor=gray>
    <td>商品名称</td>
<td>货号</td>
<td>颜色</td>
<td>尺码</td>
<td>成交价</td>
<td>数量</td>
<td>小计</td>
  </tr>
  <tr>
    <td>添香防辐射有扣马夹</td>
    <td>FDB/60102</td>
<td><input type="text" name="Color" value="紫红色"></td>
<td><input type="text" name="Size" value="L"></td>
<td>¥355</td>
<td><input type="text" name="quantity" value="2">件</td>
<td>¥710</td>
  </tr>
  <tr>
    <td>添香防辐射收缩马夹</td>
    <td>FDB/60206</td>
<td><input type="text" name="Color" value="麻灰色"></td>
<td><input type="text" name="Size" value="L"></td>    
<td>¥375</td>
<td><input type="text" name="quantity" value="4" >件</td>
<td>¥1500</td>
 </tr>
 <tr>
    <td colspan=5 align=right>总计:</td>
<td>6件</td>
<td colspan=2>¥2210</td>

</tr>
</table>
<br><div align=center>
   <input type="submit" name="submit" value="确定">
</div>
</form>

解决方案 »

  1.   


    <form action="shopcarta.asp" method="post" name="form1">
    <table id="table_" border=1 width=100%>
      <tr bgcolor=gray>
        <td>商品名称</td>
        <td>货号</td>
        <td>颜色</td>
        <td>尺码</td>
        <td>成交价</td>
        <td>数量</td>
        <td>小计</td>
      </tr>
      <tr>
        <td>添香防辐射有扣马夹</td>
        <td>FDB/60102</td>
        <td><input type="text" name="Color" value="紫红色"></td>
        <td><input type="text" name="Size" value="L"></td>
        <td>¥355</td>
        <td><input id="td_1" type="text" name="quantity" value="2" onkeyup="sum(this)" />件</td>
        <td>¥710</td>
      </tr>
      <tr>
        <td>添香防辐射收缩马夹</td>
        <td>FDB/60206</td>
        <td><input type="text" name="Color" value="麻灰色"></td>
        <td><input type="text" name="Size" value="L"></td>    
        <td>¥375</td>
        <td><input id="td_2" type="text" name="quantity" value="4" onkeyup="sum(this)" />件</td>
        <td>¥1500</td>    
     </tr>
     <tr>
        <td colspan=5 align=right>总计:</td>
        <td>6件</td>
        <td colspan=2>¥2210</td>
        
    </tr>
    </table>
    <br><div align=center>
       <input type="submit" name="submit" value="确定">
    </div>
    </form><script>
    var num = 0;
    var total = 0;
    function sum(obj){
    var tableObj = document.getElementById("table_");
    var rows = tableObj.rows;
    for(var i=0;i<rows.length;i++){
    if(i>0 && i<rows.length-1){
    var td_ = document.getElementById("td_"+i).value;
    var price1 = (rows[i].cells[4].innerHTML).toString().substring(1);
    var total1 = parseInt(price1,10) * parseInt(td_,10);
    rows[i].cells[6].innerHTML = "¥"+total1;
    num += parseInt(td_,10);
    total += total1;
    }
    }
    rows[rows.length-1].cells[1].innerHTML = num+"件";
    rows[rows.length-1].cells[2].innerHTML = "¥"+total;
    total = 0;
    num = 0;
    }
    </script>
      

  2.   

    改好了,你看看<script>
    var pro1total=0;
    var pro2total=0;
    var totalprice=0;
    var count1=0;
    var count2 =0;
    var totalcount = 0;
     function getTotal(obj,t){
     var count = obj.value;
    if(t==1){
    pro1total= count *355;document.getElementById('pro1total').innerHTML="¥"+pro1total;
    count1=count;
    }
    else{
    pro2total = count*710;
    document.getElementById('pro2total').innerHTML="¥"+pro2total;
    count2=count;
    } totalcount =count1-"0"+(count2-"0");
    totalprice = pro1total -"0"+(pro2total-"0");
    document.getElementById('totalcount').innerHTML = totalcount +"件";
    document.getElementById('totalprice').innerHTML = "¥"+totalprice;
    }
    </script><form action="shopcarta.asp" method="post" name="form1">
    <table border=1 width=100%>
      <tr bgcolor=gray>
        <td>商品名称</td>
        <td>货号</td>
        <td>颜色</td>
        <td>尺码</td>
        <td>成交价</td>
        <td>数量</td>
        <td>小计</td>
      </tr>
      <tr>
        <td>添香防辐射有扣马夹</td>
        <td>FDB/60102</td>
        <td><input type="text" name="Color" value="紫红色"></td>
        <td><input type="text" name="Size" value="L"></td>
        <td id = "pro1price">¥355</td>
        <td><input type="text" name="quantity" value="0" onkeyup="getTotal(this,1)" >件</td>
        <td id = "pro1total">¥</td>
      </tr>
      <tr>
        <td>添香防辐射收缩马夹</td>
        <td>FDB/60206</td>
        <td><input type="text" name="Color" value="麻灰色"></td>
        <td><input type="text" name="Size" value="L"></td>    
        <td id = "pro2price">¥375</td>
        <td><input type="text" name="quantity" value="0" onkeyup="getTotal(this,2)" >件</td>
        <td id = "pro2total">¥</td>    
     </tr>
     <tr>
        <td colspan=5 align=right>总计:</td>
        <td id = "totalcount">0件</td>
        <td colspan=2 id ="totalprice">¥</td>
        
    </tr>
    </table>
    <br>
    <div align=center>
       <input type="submit" name="submit" value="确定">
    </div>
    </form>
      

  3.   

    感谢楼上的朋友,做的都非常不错,比较简炼,我测试了下,基本的都实现了,但是美中不足的就是,如果数量输入的是非数字的,比如字符什么的,显示数值是NaN,我想能不能这样控制一下,就是输入的时候带校验,如果输入的数量不是1,2,3,4,5等等整数,有个友好提示,不允许输入非法字符,并且焦点重新回到这个地方,自动清除刚才输入的非法字符,并恢复成输入前的值,有好的代码可以贴出来, 并且这个地方不能输入负数。
      

  4.   


    <form action="shopcarta.asp" method="post" name="form1">
    <table id="table_" border=1 width=100%>
      <tr bgcolor=gray>
        <td>商品名称</td>
        <td>货号</td>
        <td>颜色</td>
        <td>尺码</td>
        <td>成交价</td>
        <td>数量</td>
        <td>小计</td>
      </tr>
      <tr>
        <td>添香防辐射有扣马夹</td>
        <td>FDB/60102</td>
        <td><input type="text" name="Color" value="紫红色"></td>
        <td><input type="text" name="Size" value="L"></td>
        <td>¥355</td>
        <td><input id="td_1" type="text" name="quantity" value="2" onkeyup="sum()" />件</td>
        <td>¥710</td>
      </tr>
      <tr>
        <td>添香防辐射收缩马夹</td>
        <td>FDB/60206</td>
        <td><input type="text" name="Color" value="麻灰色"></td>
        <td><input type="text" name="Size" value="L"></td>    
        <td>¥375</td>
        <td><input id="td_2" type="text" name="quantity" value="4" onkeyup="sum()" />件</td>
        <td>¥1500</td>    
     </tr>
     <tr>
        <td colspan=5 align=right>总计:</td>
        <td>6件</td>
        <td colspan=2>¥2210</td>
        
    </tr>
    </table>
    <br><div align=center>
       <input type="submit" name="submit" value="确定">
    </div>
    </form><script>
        var num = 0;
        var total = 0;
        var price_ = new Object();
        var tableObj = document.getElementById("table_");
        var rows = tableObj.rows;
     
        for(var k=0;k<rows.length;k++){
    if(k>0 && k<rows.length-1){
    price_["td_"+k] = document.getElementById("td_"+k).value;
    }
        }    function sum(){
            for(var i=0;i<rows.length;i++){
                if(i>0 && i<rows.length-1){
                    var td_ = document.getElementById("td_"+i).value;
      if(isNaN(td_)){
    alert("请输入数字");
    document.getElementById("td_"+i).value = price_["td_"+i];
    td_ = price_["td_"+i];
    return;
      } else if(td_ == "" || td_ == null){
    td_ = 0;
      }
      price_["td_"+i] = parseInt(td_,10);
                    var price1 = (rows[i].cells[4].innerHTML).toString().substring(1);
                    var total1 = parseInt(price1,10) * parseInt(td_,10);
                    rows[i].cells[6].innerHTML = "¥"+total1;
                    num += parseInt(td_,10);
                    total += total1;
                }
            }
            rows[rows.length-1].cells[1].innerHTML = num+"件";
            rows[rows.length-1].cells[2].innerHTML = "¥"+total;
            total = 0;
            num = 0;
        }
    </script>