Это возможно , но не совсем так, как вы описали.Типичный способ использования функции подтверждения:
if(confirm("Are you sure you want to submit this form?")) {
form.submit();
}
В приведенном выше примере нажатие кнопки синхронно возвращается в сценарий.Выполнение в функции приостанавливается до нажатия кнопки.
«Модальное диалоговое окно» - это просто наложение всего содержимого веб-страницы HTML.Для браузера кнопки в таком наложении работают так же, как кнопки в других местах на этой странице.
Поскольку JavaScript обрабатывает такие нажатия кнопок асинхронно (т. Е. Использует функции обратного вызова для обработки событий), а не синхронно, подходВаша попытка не сработает.
Вам нужно изменить все части кода, которые используют функцию подтверждения, чтобы выглядеть так:
confirm("Are you sure you want to submit this form?", function(result) {
if(result) {
form.submit();
}
});
Это будет работать так же, как регистрация событияОбработчик с самим jQuery делает.Выполнение скрипта немедленно продолжается, пропуская весь код в анонимной функции.Позже браузер будет вызывать эту функцию косвенно через обработчик событий JavaScript, который вы регистрируете в функции подтверждения, с целью вызова функции обратного вызова с помощью либо true
, либо false
в зависимости от ситуации.