本文实例讲述了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
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我