jQuery实现购物车表单自动结算效果实例

前端技术 2023/09/04 JavaScript

本文实例讲述了jQuery实现购物车表单自动结算效果。分享给大家供大家参考。具体如下:

这里jQuery实现购物车表单自动结算,只要用户把所购商品的数量输入进去,就可以适时计算出商品总额,金额+运费,类似淘宝的购物车结算功能,计算过程是适时的,用jquery实现了Ajax不刷新网页就计算的功能,做购物类网站的或许可以用上这个例子。

运行效果截图如下:

具体代码如下:

<!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>
<title>jQuery购物车表单自动结算</title>
<style>
*{margin:0;padding:0;}
body{font:12px \"Lucida Grande\", Helvetica, Sans-Serif;padding:50px;}
table{border-collapse:collapse;}
#order-table{width:100%;}
#order-table td{padding:5px;}
#order-table th{padding:5px;background:black;color:white;text-align:left;}
#order-table td.row-total{text-align:right;}
#order-table td input{width:75px;text-align:center;}
#order-table tr.even td{background:#eee;}
#order-table td .total-box,.total-box{border:3px solid green;width:70px;padding:3px;margin:5px 0 5px 0;text-align:center;font-size:14px;}
#shipping-subtotal{margin:0;}
#shipping-table{width:350px;float:right;}
#shipping-table td{padding:5px;}
#shipping-table th{padding:5px;background:black;color:white;text-align:left;}
#shipping-table td input{width:69px;text-align:center;}
#order-total{font-weight:bold;font-size:21px;width:110px;}
</style>
<script type=\"text/javascript\" src=\"jquery-1.6.2.min.js\"></script>
<script type=\"text/javascript\">
function IsNumeric(sText)
{
 var ValidChars = \"0123456789.\";
 var IsNumber=true;
 var Char;
 for (i = 0; i < sText.length && IsNumber == true; i++)
 {
 Char = sText.charAt(i);
 if (ValidChars.indexOf(Char) == -1)
  {
  IsNumber = false;
  }
 }
 return IsNumber;
};
function calcProdSubTotal() {
 var prodSubTotal = 0;
 $(\".row-total-input\").each(function(){
 var valString = $(this).val() || 0;
 prodSubTotal += parseInt(valString);
 });
 $(\"#product-subtotal\").val(prodSubTotal);
};
function calcTotalPallets() {
 var totalPallets = 0;
 $(\".num-pallets-input\").each(function() {
 var thisValue = $(this).val();
 if ( (IsNumeric(thisValue)) && (thisValue != \'\') ) {
  totalPallets += parseInt(thisValue);
 };
 });
 $(\"#total-pallets-input\").val(totalPallets);
};
function calcShippingTotal() {
 var totalPallets = $(\"#total-pallets-input\").val() || 0;
 var shippingRate = $(\"#shipping-rate\").text() || 0;
 var shippingTotal = totalPallets * shippingRate;
 $(\"#shipping-subtotal\").val(shippingTotal);
};
function calcOrderTotal() {
 var orderTotal = 0;
 var productSubtotal = $(\"#product-subtotal\").val() || 0;
 var shippingSubtotal = $(\"#shipping-subtotal\").val() || 0;
 var orderTotal = parseInt(productSubtotal) + parseInt(shippingSubtotal);
 var orderTotalNice = \"$\" + orderTotal;
 $(\"#order-total\").val(orderTotalNice);
};
$(function(){
 $(\'.num-pallets-input\').blur(function(){
 var $this = $(this);
 var numPallets = $this.val();
 var multiplier = $this
    .parent().parent()
    .find(\"td.price-per-pallet span\")
    .text();
 if ( (IsNumeric(numPallets)) && (numPallets != \'\') ) {
  var rowTotal = numPallets * multiplier;
  $this
  .css(\"background-color\", \"white\")
  .parent().parent()
  .find(\"td.row-total input\")
  .val(rowTotal);
 } else {
  $this.css(\"background-color\", \"#ffdcdc\");
 };
 calcProdSubTotal();
 calcTotalPallets();
 calcShippingTotal();
 calcOrderTotal();
 });
});
</script>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /></head>
<body>
<h1>jQuery购物车自动计算表单金额</h1>
<table id=\"order-table\">
 <tr>
  <th>商品名称</th>
  <th>数量</th>
  <th>X</th>
  <th>单价</th>
  <th>=</th>
  <th style=\"text-align: right;\">总计</th>
 </tr>
 <tr class=\"odd\">
  <td class=\"product-title\">裤子</td>
  <td class=\"num-pallets\">
   <input type=\"text\" class=\"num-pallets-input\" id=\"turface-pro-league-num-pallets\" ></input>
  </td>
  <td class=\"times\">X</td>
  <td class=\"price-per-pallet\">$<span>340</span></td>
  <td class=\"equals\">=</td>
  <td class=\"row-total\">
   <input type=\"text\" class=\"row-total-input\" id=\"turface-pro-league-row-total\" disabled=\"disabled\"></input>
  </td>
 </tr>
 <tr class=\"even\">
  <td class=\"product-title\">袜子</td>
  <td class=\"num-pallets\">
   <input type=\"text\" class=\"num-pallets-input\" id=\"turface-pro-league-red-num-pallets\"></input>
  </td>
  <td class=\"times\">X</td>
  <td class=\"price-per-pallet\">$<span>455</span></td>
  <td class=\"equals\">=</td>
  <td class=\"row-total\">
   <input type=\"text\" class=\"row-total-input\" id=\"turface-pro-league-red-row-total\" disabled=\"disabled\"></input>
  </td>
 </tr>
 <tr class=\"odd\">
  <td class=\"product-title\">婴儿用品</td>
  <td class=\"num-pallets\">
   <input type=\"text\" class=\"num-pallets-input\" id=\"turface-quick-dry-num-pallets\" ></input>
  </td>
  <td class=\"times\">X</td>
  <td class=\"price-per-pallet\">$<span>300</span></td>
  <td class=\"equals\">=</td>
  <td class=\"row-total\">
   <input type=\"text\" class=\"row-total-input\" id=\"turface-quick-dry-row-total\" disabled=\"disabled\"></input>
  </td>
 </tr>
 <tr class=\"even\">
  <td class=\"product-title\">电脑用品</td>
  <td class=\"num-pallets\">
   <input type=\"text\" class=\"num-pallets-input\" id=\"turface-mound-clay-red-num-pallets\"></input>
  </td>
  <td class=\"times\">X</td>
  <td class=\"price-per-pallet\">$<span>410</span></td>
  <td class=\"equals\">=</td>
  <td class=\"row-total\">
   <input type=\"text\" class=\"row-total-input\" id=\"turface-mound-clay-red-row-total\" disabled=\"disabled\"></input>
  </td>
 </tr>
 <tr class=\"odd\">
  <td class=\"product-title\">汽车装饰用品</td>
  <td class=\"num-pallets\">
   <input type=\"text\" class=\"num-pallets-input\" id=\"diamond-pro-red-num-pallets\" ></input>
  </td>
  <td class=\"times\">X</td>
  <td class=\"price-per-pallet\">$<span>365</span></td>
  <td class=\"equals\">=</td>
  <td class=\"row-total\">
   <input type=\"text\" class=\"row-total-input\" id=\"diamond-pro-red-row-total\" disabled=\"disabled\"></input>
  </td>
 </tr>
 <tr class=\"even\">
  <td class=\"product-title\">家居装饰用品</em></td>
  <td class=\"num-pallets\">
   <input type=\"text\" class=\"num-pallets-input\" id=\"diamond-pro-drying-agent-num-pallets\"></input>
  </td>
  <td class=\"times\">X</td>
  <td class=\"price-per-pallet\">$<span>340</span></td>
  <td class=\"equals\">=</td>
  <td class=\"row-total\">
   <input type=\"text\" class=\"row-total-input\" id=\"diamond-pro-drying-agent-row-total\" disabled=\"disabled\"></input>
  </td>
 </tr>
 <tr class=\"odd\">
  <td class=\"product-title\">生活用品</td>
  <td class=\"num-pallets\">
   <input type=\"text\" class=\"num-pallets-input\" id=\"diamond-pro-professional-num-pallets\" ></input>
  </td>
  <td class=\"times\">X</td>
  <td class=\"price-per-pallet\">$<span>375</span></td>
  <td class=\"equals\">=</td>
  <td class=\"row-total\">
   <input type=\"text\" class=\"row-total-input\" id=\"diamond-pro-professional-row-total\" disabled=\"disabled\"></input>
  </td>
 </tr>
 <tr class=\"even\">
  <td class=\"product-title\">建材用品</td>
  <td class=\"num-pallets\">
   <input type=\"text\" class=\"num-pallets-input\" id=\"diamond-pro-top-dressing-num-pallets\"></input>
  </td>
  <td class=\"times\">X</td>
  <td class=\"price-per-pallet\">$<span>340</span></td>
  <td class=\"equals\">=</td>
  <td class=\"row-total\">
   <input type=\"text\" class=\"row-total-input\" id=\"diamond-pro-top-dressing-row-total\" disabled=\"disabled\"></input>
  </td>
 </tr>
 <tr>
  <td colspan=\"6\" style=\"text-align: right;\">产品小计:
   <input type=\"text\" class=\"total-box\" id=\"product-subtotal\" disabled=\"disabled\"></input>
  </td>
 </tr>
</table>
<table id=\"shipping-table\">
 <tr>
  <th>总数量.</th>
  <th>X</th>
  <th>运费</th>
  <th>=</th>
  <th style=\"text-align: right;\">总运费</th>
 </tr>
 <tr>
  <td id=\"total-pallets\">
   <input id=\"total-pallets-input\" type=\"text\" disabled=\"disabled\"></input>
  </td>
  <td>X</td>
  <td id=\"shipping-rate\">10.00</td>
  <td>=</td>
  <td style=\"text-align: right;\">
  <input type=\"text\" class=\"total-box\" id=\"shipping-subtotal\" disabled=\"disabled\"></input>
  </td>
 </tr>
</table>
<div class=\"clear\"></div>
<div style=\"text-align:right;\">
 <span>订单总额: </span>
 <input type=\"text\" class=\"total-box\" id=\"order-total\" disabled=\"disabled\"></input>
 <br /><br />
 <input type=\"submit\" value=\"提交结账\" class=\"submit\" />
</div>
</body>
</html>

希望本文所述对大家的jquery程序设计有所帮助。

本文地址:https://www.stayed.cn/item/10045

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。