0

我正在使用一个 Jquery 模式窗口,里面有一个 asp 按钮。这里的问题是 jQuery-UI 在元素之外创建对话框,因此单击它永远不会提交表单。我试图通过添加来解决这个问题:

$(this).parent().appendTo(jQuery("form:first"));

但是,我是 Jquery 的新手,不知道在哪里添加这一行。我以为我很接近任何帮助?谢谢!

jQuery(function ($) {
var OSX = {
    container: null,
    init: function () {
        $("input.osx, a.osx").click(function (e) {
            e.preventDefault();

            var dlg = $("#osx-modal-content").modal({
                overlayId: 'osx-overlay',
                containerId: 'osx-container',
                closeHTML: null,
                minHeight: 80,
                opacity: 65, 
                position: ['0',],
                overlayClose: true,
                onOpen: OSX.open,
                onClose: OSX.close
            });
        });
    },

    open: function (d) {
        var self = this;
        $(this).parent().appendTo(jQuery("form:first")); // <--APPENDING HERE
        self.container = d.container[0];
        d.overlay.fadeIn('fast', function () {
            $("#osx-modal-content", self.container).show();
            var title = $("#osx-modal-title", self.container);
            title.show();
            d.container.fadeIn('slow', function () {
                setTimeout(function () {
                    var h = $(document).height() - 25
                    d.container.animate(
                        {height: h}, 
                        300,
                        function () {
                            $("div.close", self.container).show();
                            $("#osx-modal-data", self.container).show();
                        }
                    );
                }, 200);
            });
        })
    },
    close: function (d) {
        var self = this;
        d.container.animate(
            {top:"-" + (d.container.height() + 20)},
            300,
            function () {
                self.close();
            }
        );
    }
};

OSX.init();

});
4

2 回答 2

0

$(el).modal({appendTo: 'form'}); 修复了问题,具体用法见下文。

jQuery(function ($) {
var OSX = {
    container: null,
    init: function () {
        $("input.osx, a.osx").click(function (e) {
            e.preventDefault();

            $("#osx-modal-content").modal({
                overlayId: 'osx-overlay',
                containerId: 'osx-container',
                closeHTML: null,
                minHeight: 80,
                opacity: 65, 
                position: ['0',],
                overlayClose: true,
                onOpen: OSX.open,
                onClose: OSX.close,
                appendTo: 'form' // <--This appends to the form
            });
        });
    },
于 2012-09-10T21:31:13.090 回答
0

从它看起来的样子,不要使用.dialog()

您可以使用以下样式来创建对话框的效果

#mydialog{

    z-index:1000;
    position:absolute;
    top:100px;
    left:200px;

}

#overlay{

   z-index:999;
   background:transparent url(bg.png) repeat ...; 
}

请注意,您甚至可以$.blockUI()用于叠加效果。

$('#mydialog').draggable(); //.resizable() if you want to
于 2012-09-10T21:24:48.583 回答