2012-02-02 57 views
0

我有一個複選框,裏面有一個複選框。在.NET中繼器內的複選框上觸發JQuery事件

<tr class="datarow"> 
     <td style="display: none"> 
      <asp:HiddenField runat="server" ID="hfPortalUserId" Value='<%# Eval("portalUserId") %>' /> 
     </td> 
     <td> 
      <asp:TextBox ID="tbUserName" runat="server" Enabled="false" Text='<%# Eval("portalCommonName") %>' Width="98%"></asp:TextBox> 
     </td> 
     <td> 
      <asp:CheckBox ID="chkActive" Enabled="false" runat="server" Checked='<%# IsPortalUserActive((DateTime)Eval("portalUserInactive")) %>' /> 
     </td> 
     <td> 
      <asp:CheckBox ID="chkEmployee" Enabled="false" runat="server" Checked='<%# IsEmployee((int)Eval("portalUserTypeId")) %>' /> 
     </td> 
     <td class="checkadmin"> 
      <asp:CheckBox ID="chkAdmin" Enabled="false" runat="server" Checked='<%# IsAdministrator((int)Eval("siteSecurityRoleId")) %>' CssClass="chkadmin" /> 
     </td> 
     <td> 
      <asp:DropDownList ID="ddlUserClient" Enabled="false" runat="server" Width="98%" ></asp:DropDownList> 
      <asp:HiddenField runat="server" ID="hfClientId" Value='<%#Eval ("clientId") %>' /> 
     </td> 
     <td> 
      <asp:TextBox ID="tbEmail" runat="server" Enabled="false" Text='<%# Eval("portalEmail") %>' Width="98%" AutoCompleteType="None"></asp:TextBox> 
     </td> 
     <td> 
      <asp:TextBox ID="tbPassword" runat="server" Enabled="false" Width="98%" AutoCompleteType="None" ></asp:TextBox> 
      <asp:TextBoxWatermarkExtender ID="wmPass" runat="server" TargetControlID="tbPassword" WatermarkText="Enter new Password"></asp:TextBoxWatermarkExtender> 
     </td> 
     <td> 
      <asp:Panel ID="pnlControls" runat="server" Visible="true"> 
       <asp:ImageButton ID="btnEdit" ImageUrl="~/Images/Management/EditDocument_20x20.png" runat="server" ToolTip="Update User" CommandName="edit" CausesValidation="false" /> 
       <asp:ImageButton ID="btnDelete" ImageUrl="~/Images/Management/Delete_black_20x20.png" runat="server" CommandName="delete" ToolTip="Mark User Inactive" CausesValidation="false" OnClientClick="return confirm('Are you sure you would like to delete this user');" /> 
      </asp:Panel> 
     </td> 
</tr> 

當控件呈現時,控件被禁用,並且當單擊編輯按鈕時,該行的控件被啓用。我試圖使用JQuery選擇器來捕獲管理複選框點擊事件和彈出和警告框。

這裏是jQuery代碼

$("input[id^=BodyLeft_rptUsers_chkAdmin]").change(function() { 
    alert('Event Fired'); 
    if ($(this).is(':checked')) { 
     alert('You are about to give administrator privileges. Are you sure?'); 
    } 
}); 

如果我使用IE瀏覽器的開發工具和頁面後運行此腳本渲染,它的工作原理,但在其他事件不火而沒有警告框。

+1

它落在哪裏$(「input [id^= BodyLeft_rptUsers_chkAdmin]」)捕獲所有元素?我看到複選框上的更改事件的問題也許嘗試onclick。 – Daniel 2012-02-02 17:31:14

回答

0

將它包裝在$(function(){ })之內,這將確保頁面在jQuery嘗試查找所需元素之前加載。

$(function(){ 
    $(".chkadmin").click(function() { 
     alert('Event Fired'); 
     if ($(this).is(':checked')) { 
      alert('You are about to give administrator privileges. Are you sure?'); 
     } 
    }); 
}); 
+0

感謝您的快速反應,但仍然沒有骰子。 – bedwards0978 2012-02-02 15:42:30

+0

你是否在頁面上看到任何錯誤?在使用它之前是否包含了jQuery js文件? – ShankarSangoli 2012-02-02 15:46:43

+0

有沒有錯誤,是的.js是包含在我有其他jquery行動正在進行,這是工作正常。 – bedwards0978 2012-02-02 15:47:42