2014-11-25 106 views
-1

我試圖驗證一個文本框,通過使用下面的獲取客戶端ID然後測試其值 該文本框位於更新面板中的ModalPopupExtender 然而,JQuery似乎沒有返回任何東西,控制始終是NULL 該文本框是一個gridview使用jquery獲取客戶端ID

<asp:TemplateField HeaderText="Quick Donate"> 
           <ItemTemplate> 
            <asp:Button ID="btnQuickDonate" runat="server" 
             CommandName="Insert" 
             CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" 
             OnClick="btnQuickDonate" 
             Text="Quick Donate" /> 
            <ajaxToolkit:ModalPopupExtender ID="ModalDonationPopup" runat="server" TargetControlID="btnQuickDonate" PopupControlID="Panel1" BackgroundCssClass="modalBackground"> 
            </ajaxToolkit:ModalPopupExtender> 
            <asp:Panel ID="Panel1" runat="server" CssClass="modalPopup" Style="display: none"> 
             Enter Donation Amount<br /> 
             <table> 
              <tr> 
               <td></td> 
               <td> 
                <asp:Button ID="btnOnePound" runat="server" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" OnClick="btnQuickDonate" Text="1" /> 
                <asp:Button ID="btnFivePound" runat="server" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" OnClick="btnQuickDonate" Text="5" /> 
                <asp:Button ID="btnTenPound" runat="server" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" OnClick="btnQuickDonate" Text="10" /> 
                <asp:Button ID="btnFifteenPound" runat="server" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" OnClick="btnQuickDonate" Text="15" /> 
                <asp:Button ID="btnTwentyPounds" runat="server" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" OnClick="btnQuickDonate" Text="20" /> 
                <asp:Button ID="btnTwentyFivePounds" runat="server" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" OnClick="btnQuickDonate" Text="25" /> 
                <asp:Button ID="btnThirtyPounds" runat="server" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" OnClick="btnQuickDonate" Text="30" /> 
                <asp:Button ID="btnFiftyPounds" runat="server" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" OnClick="btnQuickDonate" Text="50" /> 

               </td> 

              </tr> 
              <%-- --%> 
             </table> 
             <br /> 

             <asp:TextBox ID="txtFreeDonationAmount" runat="server" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" ></asp:TextBox> 
             **<asp:Button ID="btnOK" runat="server" CommandArgument="<%# ((GridViewRow) Container).RowIndex %>" Text="OK" OnClientClick="return valtxtBoxFreeDonation();" OnClick="btnQuickDonate"></asp:Button>** 
             <br /> 
             <asp:Button ID="btnCancel" runat="server" Text="Cancel" /> 

            </asp:Panel> 

的Javascript下面我也曾嘗試在$( '#txtFreeDonationAmount')沒有快樂...

function valtxtBoxFreeDonation() { 
    var txtDonation = $('#<%=txtFreeDonationAmount.ClientID %>'); 

    if (txtDonation.val().length < 0) { 
     // do something 
     apprise("Please Enter a Donation Amount before click okay"); 
     return false; 
    } 

} 
+2

檢查所生成的HTML,看看ID屬性存在有 – 2014-11-25 14:06:25

+0

----這是在調試器中返回的html代碼的代碼,看起來ID已經發生了相當大的變化 – AShah 2014-11-25 14:15:29

+0

---這是正確的輸出 – AShah 2014-11-25 14:26:09

回答

1

大膽的解決方案是jsut採取這個id'GridView1_btnOK_1`並在你的JS中使用它。

$('#GridView1_txtFreeDonationAmount_0') 

而作爲對$('#<%=txtFreeDonationAmount.ClientID %>') mentiones只會工作,如果你的JS是在同一個.aspx文件。

+0

感謝這似乎工作 – AShah 2014-11-25 14:55:17

3

這代碼:

var txtDonation = $('#<%=txtFreeDonationAmount.ClientID %>'); 

只有當JavaScript在.aspx文件中時才能正常工作。