Вы могли бы пойти пару маршрутов. Так как потребность в диалоговом контенте довольно специфична (textarea control - первый диалог появляется второй диалог - и т. Д.), Я бы жестко запрограммировал нужные div на странице. Итак, создайте div «#textAreaDialog» и поместите необходимые элементы управления, чтобы объявление отображало его стиль: none.
Далее, измените свою функцию, чтобы принять параметры (имя div, которое должно быть вытолкнуто, funciton для выполнения, если нажата кнопка «ОК» - и функция, выполняемая при нажатии «Отмена») не ограничиваясь использованием #dialog для всех ваших модалов, и вы можете точно контролировать, что происходит, когда нажимается каждая кнопка (не всегда просто закрывая диалог. Затем установите обработчики событий для событий нажатия кнопок, которые вам нужны, и вызовите диалоговые соответственно
HTML:.
<input type="button" id="btnPopFirstModal" Value="Open First Modal"/>
<div id="divFirstModal" style="display:none;">
Here is the content for the first modal
</div>
<div id="divSecondModal" style="display:none;">
Here is the content for the second modal
</div>
Javascript функции:
function PopDialog(divToPop, OkFunction, CancelFunction)
{
$("#" + divToPop).dialog({
autoOpen: false,
resizable: true,
width:"750",
height:300,
modal: true,
buttons: {
"Ok": function() {
OkFunction();
$(this).dialog("close");
},
"Cancel": function(){
CancelFunction();
$(this).dialog("close");
}
}
});
});
}
function PopSecondModal(){
PopDialog("divSecondModal", function(){ put code for OK Click here}, function(){put code for Cancel Click here});
}
Javascript обработчики событий:
$("#btnPopFirstModal").click(function(e){
e.preventDefault();
PopDialog("divFirstModal", PopSecondModal, function(){}); //empty function for cancel, but you can add your own code as needed
return false;
});
Помните, что вы можете расширить это столько, сколько вы хотите, добавляя больше обработчиков событий и пользовательские дивы использовать для более адаптированной модальностей. Кроме того, как вы можете видеть, вы можете написать свои OK и Cancel funcitons inline при вызове функции PopDialog - или вы можете передать ей имя функции (это предпочтительнее, если вы собираетесь повторно использовать эту функцию).