Когда я открываю всплывающее окно в своем приложении. И делаю некоторые изменения и закрывает его без сохранения. Он отображает сообщение с подтверждением, и всплывающие окна не закрываются.Всплывающее окно не ждет ответа на закрытие
var r = confirm("There are some unsaved changes, do you want to quit?");
И дальнейшее выполнение продолжается подтверждение пользователя, Yes or cancel.(Native jquery buttons).
Моей потребности в том, чтобы иметь три кнопки, Yes ,No and Cancel
. Я сделал это вот так.
var question = "There are some unsaved changes, do you want to quit?";
confirmation(question).then(function (answer) {
// var ansbool = Boolean.parse(answer.toString());
var r = answer.toString();
alert(r);
if (r == "true") {
.....
return true;
}
else {
....
return false;
}
});
function confirmation(question) {
var defer = $.Deferred();
$('<div></div>')
.html(question)
.dialog({
autoOpen: true,
modal: true,
title: 'Confirmation',
buttons: {
"Yes": function() {
defer.resolve("true"); //this text 'true' can be anything. But for this usage, it should be true or false.
$(this).dialog("close");
},
"No": function() {
defer.resolve("false"); //this text 'false' can be anything. But for this usage, it should be true or false.
$(this).dialog("close");
},
"Cancel": function() {
$(this).dialog("close");
}
}
});
return defer.promise();
};
Он показывает мне сообщение, содержащее эти три buttons.But также закрывает основные всплывающие window.I хотят, когда пользователь нажимает на Yes ,No ,
то closes.After щелчка.
Заранее спасибо.
Когда вы вызываете 'подтверждение'? – Halcyon
@FritsvanCampen см. Вторую строку моего кода. подтверждение (вопрос). then (function (answer) {.. – EHS
Это происходит, так как ваш диалог во втором фрагменте не является модальным. Если вы вызываете «модальный диалог» в обработчике событий onbeforeunload, закрытие страницы процесс не дождался выполнения модального кода, вместо этого он завершает страницу. – Teemu