Reputation: 4054
I want to create an alert similar to the ajax-example, but allowing outside click dismiss before confirming. After the user clicks confirm I would like to disallow outside click until the operation is finished.
Setting the config variable allowOutsideClick
to false like in the example will never allow outside click and I don't see a valid method in the docs to achieve this behavior programatically.
Upvotes: 4
Views: 6202
Reputation: 54389
It's possible to pass the function to the allowOutsideClick
parameter:
allowOutsideClick: () => {
// add your logic here and return boolean
}
Your case:
Swal.fire({
title: 'Submit email to run ajax request',
input: 'email',
showLoaderOnConfirm: true,
preConfirm: (email) => {
return new Promise((resolve) => {
setTimeout(() => {
resolve()
}, 3000)
})
},
allowOutsideClick: () => !swal.isLoading()
})
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
Upvotes: 6