2012-02-02 91 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