我有一个颜色框,当点击一个链接时会显示一个隐藏的div。在colorbox中显示的div内是usercontrol。它基本上是订阅时事通讯表格,将它们添加到我们的客户数据库中。由于某种原因,提交表单的按钮在colorbox中不起作用,但是如果我将它移到隐藏的div之外的话。这是我之前遇到过的一个问题,并通过在隐藏的div中创建一个iframe到一个带有usercontrol的空白页面来解决它,但我确定必须有一个更简单的解决方案。
加价:
<div style='display:none'>
<div id='SignUpForm' style='padding:10px; background:#fff;'>
<umbraco:Macro Alias="SignUpUserControl" runat="server"></umbraco:Macro>
</div>
</div>
JavaScript :
$(document).ready(function () {
$(".openSignUpForm").colorbox({
width : "50%",
inline : true,
href : "#SignUpForm"
});
});
顺便说一句。我使用的是umbraco cms,宏是对usercontrol的引用。但如果我以常规方式将usercontrol添加到页面,我仍然会遇到同样的问题。
答案 0 :(得分:1)
我不知道你是否已经设法解决了这个问题,考虑到很久以前我想你可能已经开始了!
但对于有此问题的其他人,我建议您阅读此页面: http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/Q_26778740.html
如果您滚动到底部,您将看到所有已发布但没有帐户的答案。
编辑:08/06/2011
实际上只是注意到直接链接到上面的页面不起作用......
这是我在该网站上提到的帖子: “ 让我们了解大多数jquery覆盖插件的工作原理: 你的页面结构是这样的:
- 体&GT; -
- 形式&GT; -
- 您的网页内容 -
- div显示在overlay(colorbox div)中,通常使用display:none隐藏,在这种情况下为
- /形式&GT; -
- /体&GT; -
在运行期间,在显示叠加层时,结构更改为:
- 体&GT; -
- 形式&GT; -
- 您的网页内容 -
- /形式&GT; -
- DIV&GT; (这是叠加包装) --div显示在overlay(colorbox div)中,它通常使用display:none隐藏,如本例所示 -
- / DIV&GT; -
- /体&GT; -
请注意,您的div已移出标记。这就是事件没有发生的方式。
解决方案是:
它是jquery.colorbox.js文件,搜索以下行: $('body')。prepend($ overlay,$ box.append($ wrap,$ loadingBay));
将其替换为以下行: $('form')。prepend($ overlay,$ box.append($ wrap,$ loadingBay));
一切都应该开始正常工作。“
我希望有所帮助!
答案 1 :(得分:1)
感谢您的回复。我最后自己从头开始编写彩盒代码。真的很难!只是一个绝对的位置,其他一切都没有显示,只有像$(“#mydiv”)这样的动画线.fadeIn();或$(“#mydiv”)。show();