[asp.net]JQquery 单击事件为 html input(checkbox) asp 的面板内不工作

标签: Asp.net html5 jQuery
发布时间: 2016/9/19 6:38:44
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

在 aspx 文件内,我有 asp︰ 面板下 UpdatePanel

ASPX:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" >
 <ContentTemplate>
  <asp:Panel ID="PnlTraveler" runat="server" Visible="false">
    <input id="chkBoxVisAst" type="checkbox" class="checkbox" enableviewstate="true" />
  </asp:Panel>
 <ContentTemplate>
</asp"UpdatePanel>

如果我写我的 Jquery 代码在同一页面下的 asp︰ 内容头上班用的 click 事件,它不能识别我案例 chkBoxVisAst => 此 id 中的事件 id。

JQuery

asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">


<script type="text/javascript">

    $(document).on('ready', function () {
        $('#chkBoxVisAst').on('click', function ()
        {
            if ($(this).attr("checked") == "checked")
            {
                alert("checked");
            } else {
                alert("unchecked");
            }
        });
    });
</script>

如果我将我的 input(checkbox) 放在我的面板外,效果。我如何访问我从 asp︰ 面板内的事件 id?

解决方法 1:

问题是在您的代码。您不能添加任何直接更新面板内部的元素。你必须把它们放在

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:Panel ID="PnlTraveler" runat="server" Visible="false">
                    <input id="chkBoxVisAst" type="checkbox" class="checkbox" enableviewstate="true" />
                </asp:Panel>
            </ContentTemplate>
        </asp:UpdatePanel>

添加后,上面你的代码将能够访问复选框元素的 id。

编辑

添加下面的代码,

var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_endRequest(function () {
        $('#chkBoxVisAst').on('click', function () {
            if ($(this).attr("checked") == "checked") {
                alert("checked");
            } else {
                alert("unchecked");
            }
        });
    });

https://msdn.microsoft.com/en-us/library/bb311028 (v=vs.100).aspx

赞助商