我正在使用一个带有asp按钮的Jquery模态窗口。这里的问题是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();
});
答案 0 :(得分: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
答案 1 :(得分: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
});
});
},