У меня есть одна страница, на которой я хочу иметь несколько экземпляров модальных окон, реализованных SimpleModal. Точный сценарий выглядит следующим образом:
- Страница загружена.
- Пользователь нажимает кнопку, чтобы открыть модальное окно.
- В модальном режиме пользователь вводит (вводит) всю необходимую ему информацию.
- Данные подтверждены. Если проверка не удалась, новый модал должен появиться с ошибкой. Идея состоит в том, чтобы иметь модальное окно, которое должно работать так же, как функция JavaScript ().
- Когда ошибка видна, предыдущий модал должен исчезнуть. Как только пользователь нажимает кнопку ОК, ошибка должна исчезнуть, и должен появиться старый модал.
Теперь я искал ответ и увидел несколько сообщений Эрика Мартина (разработчика SimpleModal), в котором говорится о наличии нескольких модальных окон. Похоже, что SimpleModal его не поддерживает, и он рекомендует заменить содержимое модального на новое.
Я пытаюсь сделать следующее:
- Прежде чем показывать предупреждение, я сохраняю идентификатор открытого модала.
- Скрыть все открытые модалы (скрыть div).
- Показать предупреждение и привязать кнопку ОК.
- Когда пользователь нажимает кнопку ОК, я закрываю текущий модальный (оповещения), получаю имя старого div и снова показываю его, вызывая ShowDialog ("getSubsidiariesForCustomer").
Моя проблема в том, что когда я пытаюсь выполнить последнюю команду, она не работает. После исследования кажется, что реализация плагина SimpleModal сохраняет флаг, если функция modal () была вызвана для определенного элемента.
Только для общих знаний:
- Я использую простой модал 1.41
Похоже, я в строке 216 в JS:
// не разрешать множественные звонки
if (s.d.data) {
вернуть ложь;
}
Мой код только после этого раздела:
Я начинаю с запуска логики "jBtnNew_Click":
Admin.BL.SettingsPage.jBtnNew_Click=function(e)
{
Admin.BL.EcmSettings.ShowDialog("#getSubsidiariesForCustomer");
alert(""); //Just for debugging
Admin.BL.EcmSettings.ShowAlert();
}
Admin.BL.SettingsPage.ShowAlert=function()
{
var id = $("div.model:visible").eq(0).attr("id");
$("#alertBtnOk").one("click", function(e){
$.modal.close();
if (id != undefined)
{
Admin.BL.SettingsPage.ShowDialog(id);
}
}
);
Admin.BL.SettingsPage.ShowDialog("#alert");
}
Admin.BL.SettingsPage.ShowDialog=function(dialogId)
{
if (dialogId.indexOf("#") < 0)
{
dialogId = "#" + dialogId;
}
$("div.model").hide();
$("#dialog").modal({position:new Array("20%"),
overlayId:"dialog-overlay",
containerId:"confirm-container"});
$(dialogId).show();
}
А это мой HTML:
Получить дочерние компании
Пользовательский ИД:
Имя покупателя:
Это мое предупреждение
Буду признателен за любую помощь в решении этой проблемы !!
Спасибо:)