I have an issue with displaying the countdown in sweetalert message. After click i use the "A message with auto close timer". I want that countdown to be in the message and user can see the countdown.
swal({
title: "Please w8 !",
text: "Data loading...",
timer: 10000,
showConfirmButton: false
});
I have an issue with displaying the countdown in sweetalert message. After click i use the "A message with auto close timer". I want that countdown to be in the message and user can see the countdown.
swal({
title: "Please w8 !",
text: "Data loading...",
timer: 10000,
showConfirmButton: false
});
Share
Improve this question
edited Apr 27, 2016 at 11:33
michaPau
1,64819 silver badges25 bronze badges
asked Apr 27, 2016 at 11:10
Filip MartiakFilip Martiak
851 silver badge6 bronze badges
2
- I don't think it is possible without changing the library. Perhaps this answer to a similar question can work for you. – michaPau Commented Apr 27, 2016 at 12:12
- 1 See my answer. You will find complete solution (: – Ali Mamedov Commented Apr 27, 2016 at 12:13
2 Answers
Reset to default 19It is impossible to do with SweetAlert. It doesn't support counting on UI. But never say never :-)
I have prepared a little hack, which can help you to do that. Just add the code below to your application, and you will see live counting mechanism. And don't forget to add jQuery too.
var
closeInSeconds = 5,
displayText = "I will close in #1 seconds.",
timer;
swal({
title: "Auto close alert!",
text: displayText.replace(/#1/, closeInSeconds),
timer: closeInSeconds * 1000,
showConfirmButton: false
});
timer = setInterval(function() {
closeInSeconds--;
if (closeInSeconds < 0) {
clearInterval(timer);
}
$('.sweet-alert > p').text(displayText.replace(/#1/, closeInSeconds));
}, 1000);
Result:
Here is better solution
var timer = 10, // timer in seconds
isTimerStarted = false;
(function customSwal() {
swal({
title: "Please w8 !",
text: "Data loading..." + timer,
timer: !isTimerStarted ? timer * 1000 : undefined,
showConfirmButton: false
});
isTimerStarted = true;
if(timer) {
timer--;
setTimeout(customSwal, 1000);
}
})();