考虑下面的脚本: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