c# - jQuery colorbox 破坏 ASP.NET Web 窗体中的回发

标签 c# jquery asp.net colorbox webforms

我们有一个 Web 表单项目,我想在其中使用 jQuery 的 colorbox 插件来弹出一个带有提交按钮的小窗口。因为我们使用的是 Web 表单,所以表单标签不能成为 colorbox 的一部分。问题在于,当 colorbox 将 DOM 中的元素加载到 colorbox 中时,它实际上将它移动到 body 的顶部,成为一个绝对定位的元素。

通常这很好,但实际上它会从表单标签中取出内容。这使得颜色框中的提交按钮不再导致回发。

这是代表问题的 fiddle : http://jsfiddle.net/Chevex/vbLFD/

如果您单击提交更改按钮,您会注意到该表单已发布到 google,并且该窗口加载了 google。但是,如果您单击链接将 DIV 加载到 colorbox,然后单击 colorbox 中的提交按钮,则什么也不会发生。该按钮已从表单标签中取出。

是否有解决此问题的简单方法?

编辑

我想用 jQuery 提交表单,就像在这个 fiddle 中一样:http://jsfiddle.net/Chevex/vbLFD/6/

问题是如果 DIV 包含其他输入元素,如文本框,那么它们也会从表单标签中删除。因此,即使使用 jQuery 提交表单,也不会包含本应与表单一起发布的输入值。

解决这个问题的唯一方法似乎是让 colorbox 以某种方式保留在表单中。

最佳答案

我们使用的是 Colorbox v1.4.33,应用已接受的答案并没有解决问题。

Colorbox 创建两个独立的 DIV 元素,一个 ID=colorbox,一个 ID=cboxOverlay。您需要移动这两个 DIV 元素,以便正确呈现 Colorbox 对话框并触发 ASP.NET 回发。

    $(function () {
        $("#btnBoligforholdAdd").colorbox({
            inline: true,
            href: "#modalDialog_Boligforhold",
            width: "450px",
            closeButton: false,
            opacity: 0.5,
            onOpen: function () {
                $('#aspnetForm').append($('#cboxOverlay'));
                $('#aspnetForm').append($('#colorbox'));
            }
        });
    });

关于c# - jQuery colorbox 破坏 ASP.NET Web 窗体中的回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6929654/

相关文章:

c# - 使用 Markdown 编写源代码文档

c# - 如何强制项目/解决方案以管理员权限在 Visual Studio 中打开?

javascript - 如何在具有 X-Frame-Options : SAMEORIGIN 的 iframe 中打开外部 url

c# - 如何维护 GridView DropDownList 中的选定项

c# - 文件更改/上传后丢失 session

c# - 为什么我不能在泛型中使用 Type.GetType()?

javascript - 使用ajax将行插入表(倒数第二个)

php - 添加到候选名单 PHP MYSQL 或 JQUERY?

javascript - 拆分 JavaScript 字符串中的最后一个单词值

c# - 如何在C#中获取设备的当前位置