Sunday, May 19, 2024
 Popular · Latest · Hot · Upcoming
160
rated 0 times [  166] [ 6]  / answers: 1 / hits: 35290  / 8 Years ago, sun, september 4, 2016, 12:00:00

how do I properly escape the cancel button without throwing an error when using promises? My code throws an alert confirmation with a required checkbox. the code executes as it should to the user, but it throws an error in the console window:




Uncaught (in promise) cancel




//validation logic all passes...Now proceed to...

else
{

//determine and parse Discounts

var myLookup = document.getElementsByName(myLookup)[0].value;
$.post( findthem.php, {myLookup: myLookup })
.done(function(json_data){
var theResponse1 = $.parseJSON(json_data);
myDiscountRate = theResponse1['ourDiscountFound'];

}).then( function(callback){

priceRate = priceRate * (1 - (.01 * myDiscountRate));
newRate = priceRate.toFixed(2);
}

swal({
title: Confirm,
input: 'checkbox',
inputValue: 0,
type: warning,
inputPlaceholder: 'I agree to <a href=#blahblahMore></a> Your new Rate is :'+newRate,
showCancelButton: true,
confirmButtonText: 'Confirm',
showLoaderOnConfirm: true,
preConfirm: function(result) {
return new Promise(function(resolve, reject) {
if (result) {
$.post(my.php, {
Data: data
})
.done(
function(json_data) {
var data_array = $.parseJSON(json_data);
var moreDetails = '';
var resulting = 'error';
var details = Transaction Declined
if (data_array[trxApproved] == true) {
resulting = 'success';
details = Confirmed
moreDetails = <br>Approved<b> + data_array[approved] + </b> +
<br>Details Code: <b> + data_array[detailsCode] + </b>;
}
swal({
type: resulting,
title: details,
html: <h1>Details: </h1> + data_array[messagetext] + moreDetails
});
}
);
resolve();
} else {
reject('You must agree to our Terms & Conditions ');
}
});
},
allowOutsideClick: false
}).then(function(json_data) {

})
});

More From » jquery

 Answers
75

Update (Jan 2017): This issue has been fixed in v7: v7 upgrade guide ↗






You need to add a rejection handler to the Promise. Alternatively, you can use .catch(swal.noop) as a quick way to simply suppress the errors:



swal('...')
.catch(swal.noop);





PS. the package you're using is called SweetAlert2, not SweetAlert. In future questions please mention it so you can get more relevant answers.


[#60815] Thursday, September 1, 2016, 8 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
lamontm

Total Points: 482
Total Questions: 99
Total Answers: 91

Location: Burkina Faso
Member since Thu, Dec 15, 2022
1 Year ago
;