0

你典型的“它不起作用”在这里发生了。任何方向都会有所帮助。

我的母版页上有一个登录控件,我试图只使用 jquery fancybox 显示它,然后在用户登录后重定向用户。

但是当我把它放在花哨的盒子里时,任何应该做“某事”的按钮或控件都没有响应。如果我保持 div 可见,然后使用不使用 fancybox 的控件,我会得到预期的结果。

我有哪些选择?

4

4 回答 4

2

这不是 Javascript 错误。我宁愿说,当使用 Fancybox modal 时,Fancybox 会创建一个新的“窗口”,并且您无法再访问代码隐藏。

您需要做的是创建一个隐藏字段和一个 javascript 函数,您可以通过该函数将数据对象发送到隐藏字段。

代码示例:

*Fancybox 文本框(Fancybox 内)->On Send:Javascript 按钮创建文本框的对象(值)并发送到 asp:Hiddeenfield。-> 从 HiddenField 到你需要做什么???

div#inline2 {display: none;}
.myDummyClass {height: inherit;}

<!--Link that activates the fancybox with textbox-->
<a href="#inline2" class="myDummyClass">LinkName</a>
<!--this will be shown in fancybox-->

<div id="inline2">
    <p>
        <asp:TextBox ID="tBox" runat="server" TextMode="MultiLine" Width="200px" Style="overflow:hidden; height:400px;" />
        <asp:Button runat="server" Text="Knappen" OnClientClick="Send()" />
    </p>
</div>
<input id="HiddenField" type="hidden" runat="server" />
<script>
    $(".myDummyClass").focus(function() {
        $(".myDummyClass").fancybox({
            'modal': true
        });
    });

    function Send()
    {
        document.getElementById("<%=HiddenField.ClientID %>").value = document.getElementById("<%=txt1.ClientID%>").value;
        $.fancybox.close();
    }
</script>

代码隐藏

var SomeThing = HiddenField.Value;
于 2010-09-09T14:05:19.833 回答
0

我不确定你必须使用 : appendTo('form')

我认为你必须改变:

$('<div id="fancybox-title" class="' + titlec + '" />').css({
            'width'         : width,
            'paddingLeft'   : currentOpts.padding,
            'paddingRight'  : currentOpts.padding
        }).html(title).appendTo('body');

$('<div id="fancybox-title" class="' + titlec + '" />').css({
            'width'         : width,
            'paddingLeft'   : currentOpts.padding,
            'paddingRight'  : currentOpts.padding
        }).html(title).appendTo('form');

$('<div id="fancybox-title" class="' + titlec + '" />').css({
            'width'         : width,
            'paddingLeft'   : currentOpts.padding,
            'paddingRight'  : currentOpts.padding
        }).html(title).appendTo('body');

$('<div id="fancybox-title" class="' + titlec + '" />').css({
            'width'         : width,
            'paddingLeft'   : currentOpts.padding,
            'paddingRight'  : currentOpts.padding
        }).html(title).appendTo('form');
于 2011-09-27T13:00:52.413 回答
0

听起来您在页面上有一些 javascript 错误。当 javascript 被破坏时,ASP.Net 控件通常会停止响应。

于 2010-04-05T22:58:06.700 回答
0

默认情况下,Fancybox 附加到正文,而不是表单,因此您的控件在默认状态下不起作用。要解决这个问题,请查看“appendTo('body')”的精美框源代码并将其更改为“appendTo('form')”

根据 fancybox 的版本,可能有多个位置

于 2010-12-27T16:20:21.650 回答