考慮下面的腳本:jQuery UI的對話框不會關閉
$(function() {
$(".editLink").button();
$('#editPersonDialog').dialog({
autoOpen: false,
width: 800,
resizable: false,
title: 'Edit Person',
modal: true,
buttons: {
"Save": function() {
$("#update-message").html('');
$("#updatePersonForm").submit();
},
"Close": function() {
$(this).dialog('close');
}
},
close: function (event, ui) {
$(this).dialog('close');
}
});
$(".editLink").click(function() {
var dialogDiv = $('#editPersonDialog');
var linkObj = $(this);
var viewUrl = linkObj.attr('href');
$.get(viewUrl, function (data) {
dialogDiv.html(data);
//validation
var $form = $("#updatePersonForm");
// unbind existing validation
$form.unbind();
$form.data("validator", null);
// check document for changes
$.validator.unobtrusive.parse(document);
// re-add validation with changes
$form.validate($form.data("unobtrusiveValidation").options);
// open dialog
dialogDiv.dialog('open');
});
return false;
});
});
function updateSuccess() {
if ($("#update-message").html() == "True") {
$('#editPersonDialog').dialog('close');
$("#commonMessage").html("Update Complete");
$("#commonMessage").delay(400).slideDown(400).delay(3000).slideUp(400);
}
else {
$("#update-message").show();
}
}
如果單擊窗體關閉精細對話框中的「X」按鈕。如果我點擊「關閉」按鈕,它不會關閉。我已經驗證了「關閉」按鈕的代碼正在被調用。
「X」按鈕和「關閉」按鈕都運行相同的語句:'$(this).dialog('close');'。爲什麼一個工作,另一個不工作?
除非我刷新頁面,否則對話框將不會再次打開。我想這兩個問題可能是相關的。
我發現許多人有類似的問題和一些不同的解決方案,爲他們工作。不幸的是他們都沒有爲我工作。
另外的信息:
該對話框顯示在Ajax形式的局部視圖:
@using (Ajax.BeginForm("Edit", "Person", null,
new AjaxOptions
{
UpdateTargetId = "update-message",
InsertionMode = InsertionMode.Replace,
HttpMethod = "POST",
OnSuccess = "updateSuccess"
},
new { @id = "updatePersonForm" }))
{
@Html.ValidationSummary(true)
<div id="update-message" class="hiddenDiv"></div>
<div class="blockGraygradient">
@Html.Partial("_CreateEditCommon")
@Html.HiddenFor(model => model.SelectedPerson.Id)
@Html.HiddenFor(model => model.SelectedPerson.RowVersion)
@Html.HiddenFor(model => model.SelectedPerson.CreateTime)
</div><p/>
}
我發現附加文章中提供的方法幫助我使jQuery UI對話框運行良好:http://www.codeproject.com/KB/ajax/jQuery-Modal-Dialogs.aspx。 – daveywc 2012-01-18 22:22:53