当前位置: 代码迷 >> Java Web开发 >> 购物车中onchange无法触发,批改不到数量
  详细解决方案

购物车中onchange无法触发,批改不到数量

热度:184   发布时间:2016-04-16 21:58:38.0
购物车中onchange无法触发,修改不到数量
<%@ 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吧