Нестандартный 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, время: 03:30. |