js购物车实现思路及代码(个人感觉不错)


Posted in Javascript onDecember 23, 2013
<%@ page language="java" contentType="text/html; charset=utf-8" 
pageEncoding="utf-8"%> 
<% 
String path = request.getContextPath(); 
String basePath = request.getScheme() + "://" 
+ request.getServerName() + ":" + request.getServerPort() 
+ path + "/"; 
%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport"> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script> 
<title>购物车</title> 
<style type="text/css"> 
body{ 
background: #fefbe6; 
text-align: center; 
margin: 0; 
padding: 0; 
color: #500f60; 
} 
li{ 
list-style-type: none; 
} 
a:link{ 
list-style-type: none; 
} 
img{ 
width: 100%; 
height: 120px; 
} 
#static{ 
margin: 0 auto; 
text-align: left; 
} 
#main{ 
width: 100%; 
margin: 0 auto; 
color: #530a4a; 
position: absolute; 
top:110px; 
} 
#main ul{ 
} 
#main ul li{ 
width: 20%; 
float: left; 
} 
#main_t{ 
position: absolute; 
top:140px; 
color: #530a4a; 
width: 100%; 
margin: 0; 
padding: 0; 
font-size: 0.8em; 
} 
#main_t_l,#main_t_a{ 
color: #3f1262; 
width: 100%; 
font-size: 0.8em; 
} 
#main_t_l ul li{ 
width: 20%; 
float: left; 
} 
#zon{ 
background: #dbfff1; 
color: #f8cd66; 
} 
.bot_in{ 
background: #f1fcc4; 
border: 3px #f1fcc4 solid; 
border-radius: 6px 6px 6px 6px; 
-moz-border-radius: 6px; 
} 
#ji{ 
width:130px; 
height:30px; 
filter:alpha(opacity=100 finishopacity=50 style=1 startx=0,starty=0,finishx=0,finishy=150) progid:DXImageTransform.Microsoft.gradient(startcolorstr=red,endcolorstr=blue,gradientType=0); 
-ms-filter:alpha(opacity=100 finishopacity=50 style=1 startx=0,starty=0,finishx=0,finishy=150) progid:DXImageTransform.Microsoft.gradient(startcolorstr=red,endcolorstr=blue,gradientType=0);/*IE8*/ 
background:red; 
background:-moz-linear-gradient(top, red, rgba(0, 0, 255, 0.5)); 
background:-webkit-gradient(linear, 0 0, 0 bottom, from(#0dc613), to(rgba(111, 246, 116, 0.5))); 
background:-o-linear-gradient(top, red, rgba(0, 0, 255, 0.5)); 
color: #fff; 
margin-top:6%; 
border: none; 
} 
.ji { 
width:130px; 
height:30px; 
filter:alpha(opacity=100 finishopacity=50 style=1 startx=0,starty=0,finishx=0,finishy=150) progid:DXImageTransform.Microsoft.gradient(startcolorstr=red,endcolorstr=blue,gradientType=0); 
-ms-filter:alpha(opacity=100 finishopacity=50 style=1 startx=0,starty=0,finishx=0,finishy=150) progid:DXImageTransform.Microsoft.gradient(startcolorstr=red,endcolorstr=blue,gradientType=0);/*IE8*/ 
background:red; 
background:-moz-linear-gradient(top, red, rgba(0, 0, 255, 0.5)); 
background:-webkit-gradient(linear, 0 0, 0 bottom, from(#0dc613), to(rgba(111, 246, 116, 0.5))); 
background:-o-linear-gradient(top, red, rgba(0, 0, 255, 0.5)); 
color: #fff; 
margin-top:6%; 
border: none; 
} 
</style> 
<script type="text/javascript"> 
$(function() { 
//点击加号购物车数量增加1 
$(".add").live("click",function(){ 
var isAdd = true; 
var num = parseInt($(this).closest("li").find("#num").text()); 
var productId = $(this).closest("li").find("#productId").val(); 
var totalprice = parseFloat($("#totalprice").text()); 
var price = parseFloat($(this).closest("ul").find("#price").text()); 
if (!isNaN(num)) { 
num++; 
if (num > 99) { 
num = 99; 
isAdd = false; 
} 
if(isAdd) { 
totalprice = totalprice + price; 
} 
} 
var total = num * price; 
$(this).closest("li").find("#num").text(num); 
$(this).closest("ul").find("#total").text(total); 
$.post("<%=basePath%>updateShopCart.action","productId="+productId+"&num="+num,function(data){ 
if(data.success==true){ 
$("#totalprice").text(totalprice); 
} 
}); 
}); 
//点击加号购物车数量减少1 
$(".delete").live("click",function(){ 
var isReduce = true; 
var num = parseInt($(this).closest("li").find("#num").text()); 
var productId = $(this).closest("li").find("#productId").val(); 
var totalprice = parseFloat($("#totalprice").text()); 
var price = parseFloat($(this).closest("ul").find("#price").text()); 
if (!isNaN(num)) { 
num--; 
if (num < 1) { 
num = 1; 
isReduce = false; 
} 
if(isReduce){ 
totalprice = totalprice - price; 
} 
} 
var total = num * price; 
$(this).closest("li").find("#num").text(num); 
$(this).closest("ul").find("#total").text(total); 
$.post("<%=basePath%>updateShopCart.action","productId="+productId+"&num="+num,function(data){ 
if(data.success==true){ 
$("#totalprice").text(totalprice); 
} 
}); 
}); 
$("#cha").live("click",function() { 
var productId = $(this).closest("ul").find("#productId").val(); 
$.post("<%=basePath%>deleteFromShopCart.action","productId="+productId,function(data){ 
if(data.success==true){ 
getShopCartInfo(); 
} 
}); 
}); 
function getShopCartInfo(){ 
$.ajax({ 
type : "POST", 
url : "<%=basePath%>findShopCart.action", 
success : function(data) { 
var row = ""; 
var list = data.list; 
$("#main_t_l").empty(); 
var total = 0; 
if(list!=null&&list.length!=0){ 
for(var i=0;i<list.length;i++){ 
total = total + list[i].price * list[i].num; 
row = "<ul>"+ 
"<li style=\"width: 17%;text-align: center;\">"+list[i].productname+"</li>"+ 
"<li style=\"width: 17%;text-align: center;\" id=\"price\">"+list[i].price+"¥</li>"+ 
"<li style=\"width: 30%;text-align: center;\">"+ 
"<input type=\"hidden\" id=\"productId\" value="+list[i].id+">"+ 
"<button style=\"background: #dbddd4;border-top: none;border: 1px #dbddd4 solid; border-radius: 1px 1px 1px 1px;-moz-border-radius: 1px;\" id=\"num\">"+list[i].num+"</button>"+ 
"<button style=\"background: #f5e3d5;border-top: none;border: 1px #f5e3d5 solid; border-radius: 1px 1px 1px 1px;-moz-border-radius: 1px; color: #c19268;\" class=\"delete\">-</button>"+ 
"<button style=\"background: #f5e3d5;border-top: none;border: 1px #f5e3d5 solid; border-radius: 1px 1px 1px 1px;-moz-border-radius: 1px; color: #c19268;\" class=\"add\">+</button>"+ 
"</li>"+ 
"<li style=\"width: 18%;text-align: center;\"><span id=\"total\">"+list[i].totalprice+"¥</span></li>"+ 
"<li style=\"width: 18%;text-align: center;\">"+ 
"<img src=\"<%=basePath%>image/cha.png\" style=\"width: 25px;height: 25px\" id=\"cha\">"+ 
"</li>"+ 
"</ul>"+ 
"<hr size=\"3px;\" color=\"#c1c1c1\" style=\"width: 100%;\">"; 
$(row).appendTo($("#main_t_l")); 
$("#totalprice").find("span").text(total); 
} 
}else { 
$("#main_t_l").append("<ul><li style=\"width: 100%;text-align: center;\">您的购物车为空,快去购物吧!</li></ul>"); 
$("#totalprice").find("span").text(0); 
} 
} 
}); 
} 
//提交订单 
$("#ji").click(function(){ 
var name = $("#name").val(); 
var tele = $("#tele").val(); 
var address = $("#address").val(); 
var totalprice = $("#totalprice").find("span").text(); 
if(totalprice == 0){ 
alert("购物车为空,不能提交订单!"); 
return; 
} 
if(name==""){ 
alert("姓名不能为空!"); 
return; 
} 
if(tele==""){ 
alert("电话不能为空!"); 
return; 
} 
if(address==""){ 
alert("地址不能为空!"); 
return; 
} 
$("#ji").attr("disabled","disabled"); 
$("#ji").css("background","#808080"); 
document.getElementById("bgDiv").style.visibility = "visibility"; 
document.getElementById("myspin").style.visibility = "visibility"; 
$.post("<%=basePath%>addShopCart.action","name="+name+"&telephone="+tele+"&address="+address,function(data){ 
if(data.success == true) { 
getShopCartInfo(); 
alert("提交成功"); 
}else { 
alert("提交失败,请重新提交!"); 
$("#ji").addClass("ji"); 
$("#ji").attr("disabled",""); 
} 
}); 
}); 
window.onload = getShopCartInfo(); 
window.onload = function() { 
document.getElementById("bgDiv").style.visibility = "hidden"; 
document.getElementById("myspin").style.visibility = "hidden"; 
}; 
}); 
//验证联系方式 
function validTeleNum() { 
var tel = /(^[0-9]{3,4}[0-9]{7,8}$)|(^[0-9]{7,8}$)|(^[0-9]{3,4}\-[0-9]{7,8}$)|(^[0-9]{7,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/; 
if (document.getElementById("tele").value != '') { 
if (!tel.test(document.getElementById("tele").value)) { 
alert("联系电话格式不正确,请重新输入!"); 
document.getElementById("tele").value = ""; 
} 
} 
} 
</script> 
</head> 
<body> 
<jsp:include page="../jsp/progress.jsp"></jsp:include> 
<div id="static"> 
<div style="text-align: left;"> 
<a href="javascript:history.go(-1)"><img src="<%=basePath %>pic/fan4.png" style="width: 15%;height:50px;position: absolute; top:50px;"></a> 
<img src="<%=basePath %>pic/top5.jpg"> 
</div> 
<div> 
<div id="main"> 
<div> 
<ul> 
<li style="width: 17%;text-align: center;">单品</li> 
<li style="width: 17%;text-align: center;">价格</li> 
<li style="width: 30%;text-align: center;">数量</li> 
<li style="width: 18%;text-align: center;">合计</li> 
<li style="width: 18%;text-align: center;">删除</li> 
</ul> 
</div> 
</div> 
<div id="main_t"> 
<div id="main_t_l" style="margin-top: 20px;"> 
</div> 
<div id="main_t_a" style="margin-top: 20px;"> 
<hr size="3px;" color="#c1c1c1" style=" width: 100%; margin-top: 50px;"> 
<div id="zon"><br> 
</div> 
<table align="center"> 
<tr> 
<td>姓名:</td> 
<td><input type="text" class="bot_in" id="name"/></td> 
</tr> 
<tr> 
<td>联系方式:</td> 
<td><input type="text" class="bot_in" id="tele" onblur="validTeleNum()"/></td> 
</tr> 
<tr> 
<td>地址:</td> 
<td><input type="text" class="bot_in" id="address"/></td> 
</tr> 
</table> 
<div style="margin-left:60%;"> 
<span style="font-size: 1.2em; color: #f8cd66;">总计</span> 
<button style="background: #f1fcc4; margin-left:5px;border: 3px #f1fcc4 solid; border-radius: 3px 3px 3px 3px;-moz-border-radius: 3px; color: #000;" id="totalprice"><span></span>¥</button> 
<br><br> 
</div> 
<div style="background: #f1fcc4 ;" align="center"> 
<input type="button" id="ji" value="提交订单"></input><br> 
<span style="font-size: 2em; color: #a6ae87; margin-left: 93%;">></span> 
</div> 
</div> 
</div> 
</div> 
</div> 
</body> 
</html>
Javascript 相关文章推荐
IE 条件注释详解总结(附实例代码)
Aug 29 Javascript
JQuery中each()的使用方法说明
Aug 19 Javascript
js 判断checkbox是否选中的实现代码
Nov 23 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
Mar 25 Javascript
javascript遍历json对象的key和任意js对象属性实例
Mar 09 Javascript
动态统计当前输入内容的字节、字符数的实例详解
Oct 27 Javascript
详解在React-Native中持久化redux数据
May 22 Javascript
layui表格 列自动适应大小失效的解决方法
Sep 06 Javascript
layui-select动态选中值的例子
Sep 23 Javascript
JS防抖和节流实例解析
Sep 24 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
Jan 19 Javascript
javaScript Array api梳理
Mar 31 Javascript
让jQuery与其他JavaScript库并存避免冲突的方法
Dec 23 #Javascript
js写的评论分页(还不错)
Dec 23 #Javascript
用js来刷新当前页面保留参数的具体实现
Dec 23 #Javascript
jquery插件jTimer(jquery定时器)使用方法
Dec 23 #Javascript
jquery实现图片翻页效果
Dec 23 #Javascript
js substring从右边获取指定长度字符串(示例代码)
Dec 23 #Javascript
JS判断对象是否存在的10种方法总结
Dec 23 #Javascript
You might like
Discuz!下Memcache缓存实现方法
2010/05/28 PHP
解析php二分法查找数组是否包含某一元素
2013/05/23 PHP
PHP实现变色验证码实例
2014/01/06 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
PHP内置函数生成随机数实例
2019/01/18 PHP
JQuery Tips(3) 关于$()包装集内元素的改变
2009/12/14 Javascript
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
jQuery 源码分析笔记(7) Queue
2011/06/19 Javascript
得到form下的所有的input的js代码
2013/11/07 Javascript
JS中如何判断传过来的JSON数据中是否存在某字段
2014/08/18 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
2015/03/18 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
Javascript闭包实例详解
2015/11/29 Javascript
javascript实现简单加载随机色方块
2015/12/25 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
基于JavaScript实现轮播图原理及示例
2020/04/10 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
python实现多线程行情抓取工具的方法
2018/02/28 Python
Python基础教程之内置函数locals()和globals()用法分析
2018/03/16 Python
python pandas中对Series数据进行轴向连接的实例
2018/06/08 Python
Django认证系统实现的web页面实现代码
2019/08/12 Python
python ctypes库2_指定参数类型和返回类型详解
2019/11/19 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
基于python实现复制文件并重命名
2020/09/16 Python
意大利珠宝店:Luxury Zone
2019/01/05 全球购物
M.M.LaFleur官网:美国职业女装品牌
2020/10/27 全球购物
最新奶茶店创业计划书
2014/01/25 职场文书
2014年助理工程师工作总结
2014/11/14 职场文书
违反工作规定检讨书范文
2014/12/14 职场文书
二审代理词范文
2015/05/25 职场文书
升学宴家长致辞
2015/07/27 职场文书
Python自动化爬取天眼查数据的实现
2021/06/15 Python