<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>购物车显示页面</title>
<script type="text/javascript">
function deleteItem(id){
var b = window.confirm("您确定要删除吗?");
if(b){
window.location.href="${pageContext.request.contextPath}/servlet/DeleteServlet?id="+id;
}
}
function changeQuantity (input,id,oldvalue){
alter("执行");
var quantity = input.value;//得到要修改的数量
if(quantity<0||quantity!=parseInt(quantity)){
alter("请输入正整数!");
input.value = oldvalue;
return;
}
var b = windown.confirm("您确认把书的数量修改为"+quantity);
if(b){
window.location.href="${pageContext.request.contextPath}/servlet/changQuantityServlet?id="+id+"&quantity="+quantity;
}
}
</script>
</head>
<body style="text-align:center">
<h1>购物车列表</h1>
<c:if test="${empty(cart.map)}">
您没有购买任何商品!
</c:if>
<c:if test="${!empty(cart.map)}">
<table width="70%" border="1">
<tr>
<td>书名</td>
<td>作者</td>
<td>单价</td>
<td>数量</td>
<td>小计</td>
<td>操作</td>
</tr>
<c:forEach var="entry" items="${cart.map}">
<tr>
<td>${entry.value.book.name}</td>
<td>${entry.value.book.author}</td>
<td>${entry.value.book.price}</td>
<td><input type="text" name="quantity" value="${entry.value.quantity}" style="width: 35px" onchange="changeQuantity(this,${entry.key},${entry.value.quantity})"/></td>
<td>${entry.value.price}</td>
<td><a href="javascript:void(0)"
onclick="deleteItem(${entry.key})">删除 </a>
</td>
</tr>
</c:forEach>
<tr>
<td colspan="3">总价</td>
<td colspan="2">${cart.price}元</td>
<td colspan="1">
<a href="${pageContext.request.contextPath}/servlet/ClearCart">清空购物车</a>
</td>
</tr>
</table>
</c:if>
</body>
</html>
我在changeQuantity中弹出一句话,运行的时候没有弹出来,不知道为什么没有执行这个函数
------解决方案--------------------
看看前台控制台有没有报错
------解决方案--------------------
onchange触发事件必须满足两个条件:
1)当前对象属性改变,并且是由键盘或鼠标事件激发的(脚本触发无效)
2)当前对象失去焦点(onblur);
你的text内容改变时键盘敲的吗
------解决方案--------------------
select才是onchange事件吧,input你用onclick吧