Нестандартный 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;
}
То окно будет всплывать. Но, конечно, ничего не будет происходить. Как исправить? |
Напрямую - никак. Синхронная работа с UI невозможна.
В функции вызываемой в onsubmit в любом случае останавливаете отправку( event.preventDefault() ), а уже после того как пользователь что-то выберет в окошке - вызываете submit() формы вручную(или не вызываете). Чтоб отличить submit пользователя от вашего ручного submit - можно смотреть на параметр event.isTrusted или просто ставить какой-то флаг. |
| Часовой пояс GMT +3, время: 01:24. |