你典型的“它不起作用”在这里发生了。任何方向都会有所帮助。
我的母版页上有一个登录控件,我试图只使用 jquery fancybox 显示它,然后在用户登录后重定向用户。
但是当我把它放在花哨的盒子里时,任何应该做“某事”的按钮或控件都没有响应。如果我保持 div 可见,然后使用不使用 fancybox 的控件,我会得到预期的结果。
我有哪些选择?
这不是 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;
我不确定你必须使用 : 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');
听起来您在页面上有一些 javascript 错误。当 javascript 被破坏时,ASP.Net 控件通常会停止响应。
默认情况下,Fancybox 附加到正文,而不是表单,因此您的控件在默认状态下不起作用。要解决这个问题,请查看“appendTo('body')”的精美框源代码并将其更改为“appendTo('form')”
根据 fancybox 的版本,可能有多个位置