У меня есть диалоговое окно jQueryUI, загружающее форму из внешнего URL-адреса, форма отображается нормально и отправляет сообщения в порядке, но ни одна из кнопок сохранения или отмены, похоже, не закрывает форму, хотя значок закрытия диалогового окна хорошо работает.
Вот мой скрипт, который порождает диалог и должен обрабатывать кнопки:
$(function () {
$('a.modal').on('click', function() {
var href = $(this).attr('href');
$("#modalAdd").html("")
.dialog({
title: $(this).attr("title"),
width: 400,
height: 300,
buttons: {
"Save": function() {
$.post(href,
$("form").serialize(),
function() {
$(this).dialog("close");
});
},
Cancel: function() {
$(this).dialog("close");
}
}
})
.load(href, function() {
$(this).dialog("open");
});
return false;
});
});
Окончательное решение состояло в том, чтобы объявить переменную вне области объявления диалога следующим образом:
$(function () {
$('a.modal').on('click', function() {
var href = $(this).attr('href');
var modal = $("#modalAdd");
modal.html("")
.dialog({
title: $(this).attr("title"),
width: 400,
height: 300,
buttons: {
"Save": function() {
$.post(href,
$("form").serialize(),
function() {
modal.dialog("close");
});
},
Cancel: function() {
modal.dialog("close");
}
}
})
.load(href, function() {
**modal**.dialog("open");
});
return false;
});
});