当前位置: 首页 > 知识库问答 >
问题:

Checked=“Checked”单击一次目标复选框后不工作[重复]

乐正远
2023-03-14

我有以下GridView:

<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>

我的目标是在单击创建复选框时自动选中禁用读取复选框。因此,我能够创建以下脚本:

<script>
    document.getElementById('Form').addEventListener('click', function (e) {
        if (e.target.parentElement.getAttribute("class") === 'clicknext') {
            if (jQuery(e.target).is(":checked")) {
                e.target.parentElement.parentElement.nextElementSibling.firstChild.setAttribute("checked", "checked");
                e.target.parentElement.parentElement.nextElementSibling.firstChild.setAttribute("disabled", "disabled");
            }
            else {
                e.target.parentElement.parentElement.nextElementSibling.firstChild.removeAttribute("checked");
                e.target.parentElement.parentElement.nextElementSibling.firstChild.removeAttribute("disabled");
            }
        }
    });
</script>

您可能想知道为什么我使用了两次。这是因为如果您在复选框上应用css类,ASP. net将在复选框周围包装一个span

因此,如果我打开包含脚本的页面并单击“创建”-复选框,“读取”-复选框也会被选中,并且将被禁用。取消选中“创建”-复选框也可以正常工作:“读取”-复选框将取消选中重新启用

但是:一旦我手动检查了一次“读取”复选框,脚本就不再工作了。它仍然能够启用/禁用“读取”复选框,并设置“检查”属性(参见开发html" target="_blank">控制台),但浏览器(火狐,Chrome)不会将其呈现为“检查”。

你知道我做错了什么吗?提前谢谢!

#编辑

为了澄清问题,这里是复选框的开发工具输出:

<input id="MainContent_gvSpecificRights_cbTickViewer_0" name="ctl00$MainContent$gvSpecificRights$ctl03$cbTickViewer" checked="checked" disabled="disabled" type="checkbox">

disabled-属性由浏览器解释,但是如果我以前没有手动触摸它,那么选中的属性将被解释。


共有1个答案

仲孙阳
2023-03-14

尝试使用。道具(“选中”,为真)。道具(“选中”,错误)

我几天前在jquery中发现这个复选框已选中

设置选中属性时也要小心,不要将其删除。

 类似资料:
  • 问题内容: 我在查找以下jquery / checkbox行为的原因时遇到问题。 该代码旨在按以下方式工作:-单击input.select_all触发事件- 如果选中了input.select_all:将选中的属性添加到table.sgrid-content中标记为.select的所有复选框-如果未选中:则删除“ ‘属性来自所有input.select项。 另一个简单的网格功能。而且有效。奇怪的是

  • 问题内容: 我想做这样的事情来使用 jQuery 打勾: 要么 这样的事情存在吗? 问题答案: 现代jQuery 用途: DOM API 如果只使用一个元素,则始终可以访问底层元素并修改其属性: 使用and 方法代替此方法的好处是它们将对所有匹配的元素进行操作。 jQuery 1.5.x及以下 该方法不可用,因此您需要使用。 请注意,这是jQuery 1.6版之前的单元测试所使用的方法,并且比使用

  • 问题内容: 在React中为复选框状态分配默认值后,我无法更新复选框状态。 分配后,我无法通过单击取消选中/选中来交互复选框状态。 问题答案: 如果仅使用创建复选框,则使用该属性 。 归功于@nash_ag

  • 问题内容: 如果在侧面评估为,则不会更新。我无法按照上述问题的建议进行操作,因为我必须为每个复选框使用一些样式。 这是我为了说明我的问题而创建的插件。 http://plnkr.co/edit/YsOsPh3vjkPMUUDa6r2t 要查看我想要的内容,请打开控制台,然后单击按钮。请不要选中任何复选框。 提前致谢! 问题答案: 并且不打算一起使用。 期望一个表达式,所以说,基本上是说默认情况下始

  • 微软开源了Checked C,旨在对C和C++增加边界检查的研究项目。 Checked C允许程序员在C/C++中编写“确保边界检查”的代码。为了实现这个功能Checked C增加了新的指针和数组类型,它们可以在编译期和运行时进行边界检查: ptr<T>:指向类型T且无须边界检查的指针。这种类型的指针不允许参与算数运算。当访问内存时,该类型指针不能为null。大部分指针应该用此类型。 array_

  • 问题内容: 在我的HTML页面中,我有两组基于布尔的单选按钮:分别标记为“是”和“否” /值:分别为 True 和 False 。我正在从PostgreSQL数据库表中填充完整的表单,以允许经过身份验证的用户查看包含填充数据的表单,并编辑包含单选按钮的填充字段,然后保存将数据保存到DB的表单。所有其他文本字段都可以毫无问题地填充;这都是单选按钮的集合我在单选按钮的预选标记方面遇到了问题。 以下内容