Я использую модальные диалоговые окна jQuery в моем приложении для обработки обычных операций CRUD.В некоторых случаях у меня даже есть два открытых модальных диалоговых окна.
Затем я создал две универсальные функции во внешнем файле javascript для обработки соответственно отображения и отправки форм CRUD.
Для отображения модальных диалогов я вызываю следующую функцию
function _loadDialog(level, action, id, title, onCloseHandler) {
var panel = panels[level];
$(panel).dialog("option", "title", title);
var url = action;
if (id != "") url = url + "/" + id;
$.ajax({
type: "get",
dataType: "html",
url: url,
data: {},
success: function(response) {
$(panel).html('').html(response).dialog('open');
}
});
$(panel).unbind("dialogclose").bind("dialogclose", function(event, ui) {
if (onCloseHandler != null) {
onCloseHandler();
}
});
}
Эта функция, помимо прочего, получает параметр level
, который инструктирует функцию, как складывать диалог и где размещатьвизуализированная частичная разметка, возвращаемая после вызова ajax.Эта функция работает нормально.
Внутри частичного представления, возвращаемого вызовом ajax, есть ввод и в конце следующий код
<div style="text-align:right;">
<input type="submit" id="btnSave" value="Salva" />
</div>
, а для части jQuery, например,
$("#contactForm").submit(function(event) {
_submitForm(1, event, "#contactForm", "post", "html", '<%= Url.Content("~/Contact/Save") %>');
});
Как видите, функция submit имеет следующую подпись
function _submitForm(level, event, formName, atype, adataType, aurl) {
}
и обрабатывает
- отправку формы для правильного действия контроллера
- обратная связь с пользователем (например, «действие выполнено успешно»)
- операция закрытия диалога
Параметр уровня необходим для обращения ко всем функциям, включая закрытие диалога,для правильной используемой панели DIV.
Я хотел бы иметь возможность отображать одно и то же диалоговое окно иногда в виде диалога, а иногда и в качестве вспомогательного диалога.
Чтобы иметь возможность сделать это, я имею в виду «логически говоря«поскольку я не так силен в javascript и jQuery, мне нужны следующие изменения:
- Измените функцию
_loadDialog
, чтобы сохранить параметр level
внутри самой разметки диалога - Modify функции
_submitForm
и настройте ее, используя правильный параметр level
, который был ранее сохранен из функции _loadDialog
.
Как этого добиться?