jQuery sweetalert2 函数没有

jQuery sweetalert2 function does not

这对原始的 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"
                        });
                    }
                }
            });
        })

我建议您看一下从 sweetalert 到 sweetalert2 的迁移指南。 Sweetalert2 不再使用回调,而是使用 promises。

您可以找到所有迁移详细信息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");
      });

注意 function()

之前的 .then

使用 .then 您正在使用 promise,就像 sweetaler2 期望的那样,而不是回调。