我有2個Razor視圖,其中一個正在加載另一個jQuery UI對話框。在對話框中加載的視圖中;我打開另一個jQuery UI對話框來顯示一條消息。jQuery UI:模型對話框'關閉'
目標是在消息對話框Cancel
單擊按鈕時關閉兩個對話框。
剃刀代碼如下:
主視圖
<button id="openModel" onclick="openModel()">
<div id="mainDialog" />
<script type="text/javascript">
function openModel() {
$('#mainDialog').dialog({
open: function() {
// loading "the secondary view in the model dialog"
// url: controller-action url to load the second view
$(this).load('url');
}
});
}
</script>
對話框查看
<button id="messageOpener">Verify</button>
<div id="messageDialog" />
<script type="text/javascript">
$(document).ready(function() {
$("#messageOpener").click(function() {
$("#messageDialog").dialog("open");
return false;
});
$("#messageDialog").dialog({
buttons: {
Retry: function() {
$(this).dialog("close");
},
Cancel: function() {
// **** ?? must close both dialogs. ****
}
},
autoOpen: false,
});
});
</script>
我曾嘗試以下方法關閉對話框:
方法01:
$(".ui-dialog-content").dialog("close");
方法02:
$(this).dialog("close");
$("#mainDialog").dialog("close");
方法03:
$(".ui-dialog:visible").find(".dialog").dialog("close");
但是,所有上述不關閉對話框的預期,而不是產生以下JS錯誤:
Uncaught Error: cannot call methods on dialog prior to initialization; attempted to call method 'close'
v.extend.error
(anonymous function)
v.extend.each
v.fn.v.each
e.fn.(anonymous function)
$.dialog.buttons.Cancel
r.click
v.event.dispatch
o.handle.u
會發生什麼時你把'$(「#mainDialog」)。對話框(「關閉」);'當消息對話框關閉?方法2看起來不錯,但 – Vimalnath
有關於此的任何更新? – Vimalnath
@vimalnath,謝謝。是的,'$(「#mainDialog」)。dialog(「close」);'關閉** messageDialog **而不是** mainDialog **也會給出相同的錯誤。 – dan