这与原始的sweetalert一起工作得很好,但是对于sweetalert2,它从不运行重新加载我的ajax数据的功能。
任何人都可以看到错误吗?
.on('click', '#saveRider', function (e) {
e.preventDefault();
$.ajax({
url: 'ajax/saveRiderClass.php',
dataType: 'JSON',
type: 'POST',
data: $('#addRidersForm').serialize(),
success: function (json) {
if (json && json.status && json.already_entered === false) {
swal({
title: "Rider Saved and Classes Added!",
type: "success"
},
function (isConfirm) {
if (isConfirm === true) {
$("#enteredRiders").load("ajax/getEnteredRiders.php");
$("#uniqueRiders").load("ajax/getUniqueRiders.php");
$("#totalRiders").load("ajax/getTotalEntries.php");
}
});
}
else if (json && json.status && json.already_entered === true) {
swal({
title: "Rider already entered in that class",
type: "warning"
});
}
}
});
})
答案 0 :(得分:3)
我建议你看一下从sweetalert到sweetalert2的迁移指南。 Sweetalert2不再使用回调,而是承诺。
您可以找到所有迁移详情here
编辑:以下是修改代码的方法。我正在接受你的第一个sweetalert电话。
这个电话:
swal({
title: "Rider Saved and Classes Added!",
type: "success"
},
function (isConfirm) {
if (isConfirm === true) {
$("#enteredRiders").load("ajax/getEnteredRiders.php");
$("#uniqueRiders").load("ajax/getUniqueRiders.php");
$("#totalRiders").load("ajax/getTotalEntries.php");
}
});
应该变成这样的东西:
swal({
title: "Rider Saved and Classes Added!",
type: "success"
}.then(function () {
$("#enteredRiders").load("ajax/getEnteredRiders.php");
$("#uniqueRiders").load("ajax/getUniqueRiders.php");
$("#totalRiders").load("ajax/getTotalEntries.php");
});
请注意.then
function()
使用.then
正如sweetaler2所期望的那样使用promises而不是回调。