Fancybox事件未被触发。

3

我可以帮助您翻译相关的IT技术内容。需要翻译的内容涉及到一个在fancybox中的登录,而fancybox div位于控制器中。问题是,当点击按钮时,没有任何反应,事件无法触发。

以下是我的controller.ascx代码:

<div id="inline1" style="width:400px;">
<ul class="forms">
    <li class="inputfield"><asp:TextBox ID="kullanıcı_adi" runat="server"></asp:TextBox></li>
</ul>
<ul>
    <li><asp:TextBox ID="sifre" runat="server"></asp:TextBox></li>
</ul>
<ul>
    <li>
        <asp:Button ID="Button1" runat="server" Text="Giriş Yap" 
            onclick="Login_Authenticate" />
        <asp:Button ID="Button2" runat="server" Text="Vazgeç"/>
    </li>
</ul>
    </div>

这是我的cotroller.ascx.cs文件。

    protected void Login_Authenticate(object sender, EventArgs e)
    {
        bool authenticated = AuthenticateMe(kullanıcı_adi.Text, sifre.Text, true);

        if (authenticated)
        {
            FormsAuthentication.RedirectFromLoginPage(kullanıcı_adi.Text, true);
        }
    }

这是默认的.aspx页面。

<li class="gallery"><a id="various1" href="#inline1">Üye ol/Giriş Yap</a></li>

<div style="display: none;">
    <co:c_login ID="id_c_login" runat="server" EnableViewState=true />
</div>

我找到了解决方案。之前有人问过同样的问题。 Fancybox - ASP.NET按钮无法工作。感谢您的回答。


你的 default.aspx 页面是否包含一个带有 runat="server" 属性的 <form> 标签? - jrista
是的,我的 default.aspx 页面的表单具有 runat=server 属性。 - varstas
它被称为controller.ascx.cs,而不是像你在问题中写的cotroller.ascx.cs。 - Vincent McNabb
我听不懂你说什么,文森特? - varstas
2个回答

1

有点晚了,但可能对你有帮助。

这是因为fancybox的工作原理,当fancybox显示div块时,它会创建一个临时的div块,并将其附加到页面的body标签末尾,因此生成的临时块是在form标记之外创建的。

在网页中,当您回传页面时,生成回传事件的控件必须在form标记内以识别页面回传操作。

要解决此问题,您可以使用一些javascript,创建另一个按钮控件,但它不应该是fancybox控件的一部分,并在fancybox内的提交按钮上,借助javascript触发另一个已创建的按钮(它将位于form标记内)的单击事件。

这应该可以解决您的问题,请投票表示是否解答了您的问题。


0

我们可以通过使用 fancybox 的 parent 属性来解决 fancybox 2 事件未触发的问题。 例如 -

$("#buttonClick").fancybox({
            parent: "form:first",//Asp.net Button click event not working issue solved by using this statement
            ......your fancybox config options
        });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接