2013-01-02 66 views
1

所以基本上我有幾個文本框,我只想接受它們中的數字,但是我無法使用下面的JQuery Im來處理ListView中的文本框或另一個asp.net頁面。JQuery不與ListView一起工作

$(document).ready(function() { 
     $("#<%= txtSearch.ClientID %>").keydown(function (event) { 
      // Allow: backspace, delete, tab, escape, and enter 
      if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 || 
       // Allow: Ctrl+A 
       (event.keyCode == 65 && event.ctrlKey === true) || 
       // Allow: home, end, left, right 
       (event.keyCode >= 35 && event.keyCode <= 39)) { 
       // let it happen, don't do anything 
       return; 
      } 
      else { 
       // Ensure that it is a number and stop the keypress 
       if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) { 
        event.preventDefault(); 
       } 
      } 
     }); 
    }); 

該代碼可以使用名爲txtSearch正常的文本框,但是當我插入txtSearch的txtQty INSEAD它不起作用:■

<asp:ListView ID="lvProducts" runat="server" OnItemCommand="lbProducts_ItemCommand" OnSelectedIndexChanged="lvProducts_SelectedIndexChanged"> 
     <LayoutTemplate> 
      <div class="productoutercontainer"> 
       <div id="itemPlaceHolder" runat="server"></div> 
      </div> 
     </LayoutTemplate> 
     <ItemTemplate> 
      <div class="productinnercontainer"> 
       <img class="pics" src="<%#Eval("ProductImage") %>" alt="<%#Eval("ProductName") %>" title="<%#Eval("ProductName") %>" /> &nbsp;&nbsp;&nbsp; 
       <asp:Label ID="lblName" runat="server" Text='<% # Eval("ProductName") %>' Font-Bold="true" Font-Size="Medium"></asp:Label><br /><br /> 
       Quantity: <asp:TextBox ID="txtQty" runat="server" columns="3"/> 
       <asp:Button ID="btnAddToCart" runat="server" Text="Add To Cart" CssClass="button2" CommandArgument='<%# Eval("ProductId")%>' OnClick="btnAddToCart_Click" /> <br /><br /><br /> 
       </div> 
     </ItemTemplate> 
    </asp:ListView> 

回答

1

在ListView每個文本框將有一個不同的客戶端ID 。運行代碼並通過在瀏覽器上執行查看源代碼來查看生成的客戶端代碼。檢查txtQty文本框的ID。

  1. 給txtQty一個的CssClass。給一個名字不需要css編碼。讓說:

    <asp:TextBox ID="txtQty" CssClass="qty" runat="server" columns="3"/> 
    
  2. 更改此:

    $("#<%= txtSearch.ClientID %>") 
    

    這樣:

    $(".qty") 
    

現在它已經工作...

+0

非常感謝它的工作:D – rikket

+0

我很高興它的工作,謝謝 – erichste

+0

小問題,我怎樣才能得到相同的代碼來處理一個正常的asp.net文本框,這是在一個字段集中,因爲我嘗試了同樣的方式,但它沒有奏效。歡呼聲 – rikket