Подтвердить что ты не робот

JQuery UI Dialog - закрыть событие закрытия

Есть ли способ остановить событие close для jQuery UI Dialog?

У меня есть модальный диалог с формой. Когда пользователь закрывает диалоговое окно, я хотел бы запросить "Продолжить без сохранения изменений?". [Да нет]. Кнопка [Да] продолжает и закрывает диалоговое окно, как ожидалось. Кнопка [Нет] остановит событие закрытия и откроет диалоговое окно.

Возможно ли это?

4b9b3361

Ответ 1

Да, вы можете использовать опцию beforeClose. Из docs:

Это событие запускается, когда диалог пытается закрыть. Если обработчик события beforeClose (функция обратного вызова) возвращает false, закрытие будет предотвращено.

Примеры кода

Поставить функцию обратного вызова для обработки события beforeClose в качестве параметра init.

$( ".selector" ).dialog({
   beforeClose: function(event, ui) { ... }
});

Ответ 2

Джастин отвечает прекрасно, чтобы показать модальность. Если вы хотите отменить закрытие, ваша функция должна вернуть false, например:

$( ".selector" ).dialog({
   beforeClose: function(event, ui) 
    { return check_if_unsaved_changes(..); }
});

check_if_unsaved_changes должен возвращать значение true, если диалог закрывается и false, если он не закрывается.