<input type="checkbox" name="trade_picker" onchange="Add(要相加的值,this)"/><script>
function Add(value,cb)
{
  var price=document.getElementById('total_price');
  if(cb.checked)
   price.value=parseInt(price.value)+parseInt(value);
  else
   price.value=parseInt(price.value)-parseInt(value);
}
</script>

解决方案 »

  1.   

    我只能写成这样了。有点不对 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title><script language="javascript">
    function add()
    {
    var src=event.srcElement;
    var total=document.getElementById("total_price");


    if (src.checked)
    {
    total.value=parseFloat(total.value)+parseFloat(src.parentNode.previousSibling.innerHTML);
    }else{
    total.value=parseFloat(total.value)-parseFloat(src.parentNode.previousSibling.innerHTML);
    }
    } function onload()
    {
    var inputarr=document.getElementsByName("trade_picker");
    for (var i=0;i<inputarr.length;i++ )
    {
    inputarr[i].attachEvent("onclick",add);
    }
    }
    </script>
    </head><body onload="onload()">
    <form>
    <table>
    <tbody>
    <tr>
    <td>sample</td>
    <td class="trade_price">100.80</td>
    <td><input type="checkbox" name="trade_picker"/></td>
    </tr>
    <tr>
    <td>sample</td>
    <td class="trade_price">49.72</td>
    <td><input type="checkbox" name="trade_picker"/></td>
    </tr>
    <tr>
    <td>sample</td>
    <td class="trade_price">122.50</td>
    <td><input type="checkbox" name="trade_picker"/></td>
    </tr>
    <tr>
    <td>sample</td>
    <td class="trade_price">95.00</td>
    <td><input type="checkbox" name="trade_picker"/></td>
    </tr>
    <tr>
    <td>sample</td>
    <td class="trade_price">8.00</td>
    <td><input type="checkbox" name="trade_picker"/></td>
    </tr>
    </tbody>
    </table>
    <p>total:<input type="text" id="total_price" value="0.00"/></p>
    <button>submit</button>
    </form>
    </body>
    </html>
      

  2.   

    两位的解决方案都有小问题,在joejoe1991的基础上,修改完成如下,谢谢两位指教。<script>
    /* rounder for decimal fraction cracking */
    function rounder(num,n){
    var rdd=1;  
    var tempString; 
    for(i=0;i<n;i++){
    rdd*=10;
    }
    tempString=num*rdd;
    tempString=Math.round(tempString);
    return tempString/rdd;
    }
    /* main function when trade changed */
    function trade_add(){
    var trade_src=event.srcElement;
    var trade_total=document.getElementById("total_price");
    if (trade_src.checked){
    trade_total.value=rounder(parseFloat(trade_total.value)+parseFloat(trade_src.parentNode.previousSibling.innerHTML),2);
    }
    else{
    trade_total.value=rounder(parseFloat(trade_total.value)-parseFloat(trade_src.parentNode.previousSibling.innerHTML),2);
    }
    }
    /* ini */
    function onload(){
    var checked_picker=document.getElementsByName("trade_picker");
    for (var i=0;i<checked_picker.length;i++){
    checked_picker[i].attachEvent("onclick",trade_add);
    }
    }
    </script>
    <body onload="onload()">
    <form>
    <table>
    <tbody>
    <tr>
    <td>sample</td>
    <td>100.80</td>
    <td><input type="checkbox" name="trade_picker"/></td>
    </tr>
    <tr>
    <td>sample</td>
    <td>49.72</td>
    <td><input type="checkbox" name="trade_picker"/></td>
    </tr>
    <tr>
    <td>sample</td>
    <td>122.50</td>
    <td><input type="checkbox" name="trade_picker"/></td>
    </tr>
    <tr>
    <td>sample</td>
    <td>95.00</td>
    <td><input type="checkbox" name="trade_picker"/></td>
    </tr>
    <tr>
    <td>sample</td>
    <td>8.00</td>
    <td><input type="checkbox" name="trade_picker"/></td>
    </tr>
    </tbody>
    </table>
    <p>total:<input type="text" id="total_price" value="0.00" style="border:0;"/></p>
    <button>submit</button>
    </form>
    </body>