Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Нестандартный confirm на Sweetalert (https://javascript.ru/forum/events/83516-nestandartnyjj-confirm-na-sweetalert.html)

nameivan 29.12.2021 13:53

Нестандартный confirm на Sweetalert
 
Всех с наступающим!

Кто-нибудь использует такую библиотеку?
Меняет стандартные alert на симпатичное окошко.
Вот с алертом все понятно и просто. Вместо alert просто вписываем swal. А как быть с confirm?

Вызываю функцию так onsubmit="return function delete ()"

Сама функция
function delete ()
{
  valid = false;
  swal(
{
title:"Удалить?",
text:"Вы уверены?",
icon: "warning",
buttons:true,
dangerMode: true,
}
)
.then((willDelete) => {
  if (willDelete) {
   valid = true
    });
  } else {
    valid = false;
  }
return valid;
}

Но не выпадает никаких окон, сразу удаляется файл без предупреждения.
Если из этого фрагмента убрать часть
.then((willDelete) => {
  if (willDelete) {
   valid = true
    });
  } else {
    valid = false;
  }

То окно будет всплывать. Но, конечно, ничего не будет происходить.

Как исправить?

Aetae 29.12.2021 14:34

Напрямую - никак. Синхронная работа с UI невозможна.

В функции вызываемой в onsubmit в любом случае останавливаете отправку( event.preventDefault() ), а уже после того как пользователь что-то выберет в окошке - вызываете submit() формы вручную(или не вызываете).
Чтоб отличить submit пользователя от вашего ручного submit - можно смотреть на параметр event.isTrusted или просто ставить какой-то флаг.


Часовой пояс GMT +3, время: 03:30.