Javascript 勾选=“已勾选”;勾选“;单击一次目标复选框后不工作
我有以下GridView:Javascript 勾选=“已勾选”;勾选“;单击一次目标复选框后不工作,javascript,html,asp.net,checkbox,webforms,Javascript,Html,Asp.net,Checkbox,Webforms,我有以下GridView: <asp:GridView ID="gvSpecificRights" runat="server" AutoGenerateColumns="false" OnRowCreated="gvSpecificRights_RowCreated" CssClass="mGrid" ShowHeaderWhenEmpty="true" ShowFooter="true"> <Columns> <asp:BoundFiel
<asp:GridView ID="gvSpecificRights" runat="server" AutoGenerateColumns="false" OnRowCreated="gvSpecificRights_RowCreated" CssClass="mGrid" ShowHeaderWhenEmpty="true" ShowFooter="true">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID" />
<asp:TemplateField HeaderText="Name">
<ItemTemplate><asp:Label ID="lblName" runat="server" Text='<%# Bind("Name") %>'></asp:Label></ItemTemplate>
<FooterTemplate><asp:DropDownList ID="ddlAvailableUsers" runat="server"></asp:DropDownList></FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Create" ItemStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center">
<ItemTemplate><asp:CheckBox ID="cbTickCreator" runat="server" Checked='<%# Eval("TickCreator") %>' CssClass="clicknext"></asp:CheckBox></ItemTemplate>
<FooterTemplate><asp:CheckBox ID="cbFooterTickCreator" runat="server" CssClass="clicknext"></asp:CheckBox></FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Read" ItemStyle-HorizontalAlign="Center" FooterStyle-HorizontalAlign="Center">
<ItemTemplate><asp:CheckBox ID="cbTickViewer" runat="server" Checked='<%# Eval("TickViewer") %>'></asp:CheckBox></ItemTemplate>
<FooterTemplate><asp:CheckBox ID="cbFooterTickViewer" runat="server"></asp:CheckBox></FooterTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="btnSave" runat="server" Text="<i class='fa fa-floppy-o'></i>" OnClick="btnSave_Click" CommandArgument='<%# Eval("ID")%>'/>
</ItemTemplate>
<FooterTemplate>
<asp:LinkButton ID="btnAdd" runat="server" Text="<i class='fa fa-plus'></i> Hinzufügen" OnClick="btnAdd_Click" />
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
你可能想知道为什么我两次使用.parentElement。这是因为如果您在复选框上应用css类,ASP.net将在复选框周围环绕一个span
因此,如果我打开包含脚本的页面并单击“创建”-复选框,“读取”-复选框也会被选中,并且将被禁用。取消选中“创建”-复选框也可以正常工作:“读取”-复选框将取消选中
并重新启用
但是:一旦我手动选中了<代码>或<代码>未选中<代码>的“读取”-复选框一次,脚本将不再工作。它仍然可以启用/禁用“Read”复选框,还可以设置checked属性(在开发控制台上看到),但是浏览器(Firefox、Chrome)不会将其呈现为选中的
你知道我做错了什么吗?提前谢谢
---编辑---
为了澄清问题,下面是开发工具对复选框的输出:
<input id="MainContent_gvSpecificRights_cbTickViewer_0" name="ctl00$MainContent$gvSpecificRights$ctl03$cbTickViewer" checked="checked" disabled="disabled" type="checkbox">
禁用的
-属性由浏览器解释,但是如果我以前没有手动触摸它,选中的属性将被解释。尝试使用.prop(“选中”,真)
和.prop(“选中”,假)
我几天前在
设置checked属性时也要小心,不要将其删除。当您选中复选框时,我猜您的表单正在回发?我100%确定没有回发。如前所述,F12开发控制台显示了正确的属性。但它没有按检查的方式呈现…这是什么样子的?小提琴对我也很有用。正如我所说的:只要我不会在页面加载后更改“Read”复选框一次,整个脚本就像一个符咒。仅当我至少手动更改了一次checkstatus时才会出现。仅供参考@CoastN。如果希望使用jquery解决方案,那么应该添加jquery标记。很多人只想要普通的javascript,而你的问题中没有任何东西表明jquery是一个可行的解决方案。他没有使用jquery
<input id="MainContent_gvSpecificRights_cbTickViewer_0" name="ctl00$MainContent$gvSpecificRights$ctl03$cbTickViewer" checked="checked" disabled="disabled" type="checkbox">