日期:2014-05-17  浏览次数:20418 次

求一个类似商城详细页面的点击数量加减一的代码
类似淘宝商品详细页面选择数量的代码,就是点击一个按钮文本框中的数量就加一,点击另一个按钮文本框中的数量就减一
我自己写了个,但在ASPX下不起作用。哪位大哥知道啊?
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!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 runat="server">
  <title>无标题页</title>
  <script language="javascript"> 
  function add() {
  var obj = document.getElementById("tx1");

  obj.value = parseInt(obj.value) + 1;
  }

  function remove() {
  var obj = document.getElementById("tx1");

  if(obj.value == 0) {
  return;
  }

  obj.value = parseInt(obj.value) - 1;
  }

  </script>
</head>
<body>
  <form id="form1" runat="server">
  <div>
  <input type="text" value="1" id="tx1">
  <input type="button" value="add" id="add" onclick="add()">
  <input type="button" value="remove" id="remove" onclick="remove()">
  </div>
  </form>
</body>
</html>

------解决方案--------------------
那为什么aspx就起作用了呢?你看看浏览器源代码里面的代码跟你现在生成的一样吗?
你要搞不懂,就贴你的全部代码。/
------解决方案--------------------
应该是因为你的input标签名与onclick中的函数名相同造成的问题 
html的每个元素都会在dom中建里一个相应的对象。name属性就是这个对象的唯一标识,<input>是这样。<script>也是这样,script中的每个方法或过程的方法名就相当于它的name属性。你在<input>的onclick方法中指定了要调用的对象名,于是dom在它内部寻找,按顺序首先找到了input本身,但是input本身不是一个onclick方法函数,所以就出现错误了。

你原来的代码是这样的:
C# code
<input type="button" value="add" id="add" onclick="add()">
<input type="button" value="remove" id="remove" onclick="remove()">