用JavaScript实现购物车中数量的增减。当用户点击增加时,判断数量是否大于库存。若大于库存,不执行;反之,加1。但调试后发现并没有获取到最大库存量,总是提示:undefined。如图所示:JavaScript代码如下:<script type="text/javascript">
  //点击+号图,数量+1
    function Plus(obj) {
     var ztb1 = document.getElementById('<%= Label1.ClientID %>'); 
      alert(ztb1.value);// 提示:undefined
      obj.value = parseInt(obj.value) + 1;    }
    //数量-1
    function Reduce(obj) {
       if (obj.value > 1) {
        obj.value = obj.value - 1;
       }
    }
    //替换txtAmount文本框非整数的输入
    //数据整个不合法时置1
    function CheckValue(obj) {
       var v = obj.value.replace(/[^\d]/g, '');
       if (v == '' || v == 'NaN') {
          obj.value = "1";
       }
       else {
          obj.value = v;
       }
     }
 </script>Product.aspx页面代码:<dl class="amount clearfix">
   <dt>数 量:</dt>
   <dd class="ctrl">
      <a href="javascript:void(0);" class="reduce" id="areduce" runat="server">-</a>
      <asp:TextBox ID="txtAmount" runat="server" Text="1"></asp:TextBox>
      <a href="javascript:void(0)" class="add" id="aadd" runat="server">+</a>
   </dd>
   <dd class="level">
      <span class="f33">
         <asp:Literal ID="ltlClassifier4" runat="server"></asp:Literal>
      </span>
   </dd>
   <dd class="level">
      <span class="f99">(库存 <em id="goods_stock">
          <asp:Label ID="Label1" runat="server"></asp:Label></em>
          <asp:Literal ID="ltlClassifier5" runat="server"></asp:Literal>)</span>
   </dd>
</dl>Product.aspx.cs页面代码:aadd.Attributes.Add("onclick", "Plus(" + txtAmount.ClientID + ")");
areduce.Attributes.Add("onclick", "Reduce(" + txtAmount.ClientID + ")");

解决方案 »

  1.   

    lable  有value 吗 ?ztb1.text 呢。 
    建议你用jquery
      

  2.   

    zhang_zhen1234
    (风一样的自由),您好。
    刚刚调试了一下ztb1.text,还是提示“undefined”.
    jQuery不懂,请多多指点。
      

  3.   

    The problem has been solved.
    An HTMLLableElement doesn't have a text property.
    If it's a simple label that contains only a single Text node,you can do:getElementById('Label1').firstChild.datathanks.
      

  4.   

    var ztb1 = document.getElementById('<%= Label1.ClientID %>');label对象没有获取到,所以undefined未定义噢
      

  5.   

    aadd.Attributes.Add("onclick", "Plus('" + txtAmount.ClientID + "')");
    areduce.Attributes.Add("onclick", "Reduce('" + txtAmount.ClientID + "')");
      

  6.   

     alert(ztb1.innerHTML);
    没有value属性的
      

  7.   

    var ztb1 = document.getElementById('<%= Label1.ClientID %>'); 其实服务器控件解析后就变成了HTML比标签你不需要这么得到lable对象你在浏览器里看看lable1的ID是多少;var ztb1 = document.getElementById('lable1');