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 相关文章推荐
分享14个很酷的jQuery导航菜单插件
Apr 25 Javascript
JS实现图片横向滚动效果示例代码
Sep 04 Javascript
完美解决IE低版本不支持call与apply的问题
Dec 05 Javascript
基于javascript的COOkie的操作实现只能点一次
Dec 26 Javascript
javascript日期操作详解(脚本之家整理)
Sep 05 Javascript
Angular2 环境配置详细介绍
Sep 21 Javascript
Bootstrap select多选下拉框实现代码
Dec 23 Javascript
vue-cli与webpack处理静态资源的方法及webpack打包的坑
May 15 Javascript
js+html5实现手机九宫格密码解锁功能
Jul 30 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
Aug 31 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
Dec 09 Javascript
基于js实现数组相邻元素上移下移
May 19 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
关于拼配咖啡,你要知道
2021/03/03 咖啡文化
什么是MVC,好东西啊
2007/05/03 PHP
简单PHP上传图片、删除图片实现代码
2010/05/12 PHP
PHP error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
PHP连接数据库实现注册页面的增删改查操作
2016/03/27 PHP
PHP的邮件群发系统phplist配置方法详细总结
2016/03/30 PHP
JS date对象的减法处理实现代码
2010/12/28 Javascript
jquery中常用的函数和属性详细解析
2014/03/07 Javascript
JS对img标签进行优化使用onerror显示默认图像
2014/04/24 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
纯js实现手风琴效果代码
2020/04/17 Javascript
浅谈jquery之on()绑定事件和off()解除绑定事件
2016/10/26 Javascript
完美实现js选项卡切换效果(一)
2017/03/08 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
nodejs入门教程二:创建一个简单应用示例
2017/04/24 NodeJs
让你彻底掌握es6 Promise的八段代码
2017/07/26 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
2018/02/26 Javascript
基于jquery实现左右上下移动效果
2018/05/02 jQuery
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
微信小程序蓝牙连接小票打印机实例代码详解
2019/06/03 Javascript
微信小程序文章详情页跳转案例详解
2019/07/09 Javascript
layer 关闭指定弹出层的例子
2019/09/25 Javascript
Vue+scss白天和夜间模式切换功能的实现方法
2021/01/05 Vue.js
Python实现的几个常用排序算法实例
2014/06/16 Python
mac系统安装Python3初体验
2018/01/02 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
Python pandas库中的isnull()详解
2019/12/26 Python
基于Python执行dos命令并获取输出的结果
2019/12/30 Python
Python CSS选择器爬取京东网商品信息过程解析
2020/06/01 Python
大学教师年终总结的自我评价
2013/10/29 职场文书
创先争优制度
2014/01/21 职场文书
人事专员岗位职责说明书
2014/07/30 职场文书
2014第二批党员干部对照“四风”找差距检查材料思想汇报
2014/09/18 职场文书
助学金感谢信
2015/01/20 职场文书
导游词之大雁塔景区
2019/09/17 职场文书