【问题标题】:SweetAlert2 : Some difficults to configure my alertSweetAlert2 : 配置我的警报的一些困难
【发布时间】:2020-01-24 15:11:37
【问题描述】:

我正在尝试使用 sweetAlert2。 https://sweetalert2.github.io/

计划如下:

1) 主警报的显示

2)如果他点击“取消”,我会正常关闭警报。

3) 如果他点击“确定”,那么按钮会转到加载位置,但警报不会关闭。与此同时,我提出了一个 Ajax 请求。当它结束时,我才能关闭第一个警报并查看第二个。

4) 当我点击第二个警报上的“确定”时,页面会重新加载。

但目前我无法很好地管理如何在单击“确定”和“取消”时显示警报。

我在下面有这段代码:

                Swal.fire({
                    title: 'Change to '+planName,
                    text: message,
                    icon: "info",
                    showCancelButton: true,
                    showLoaderOnConfirm: true,
                    preConfirm: function () {
                        // todo - actually change the plan!
                        $.ajax({
                            url: changeUrl,
                            method: 'POST'
                        }).done(function(){
                            Swal.fire({
                                title: 'Plan changed !',
                                icon: 'success',

                            },function() {
                                location.reload();
                            })
                        });
                    }
                });

当我在第一个警报上单击取消时,一切都很顺利。 但是,如果我单击“确定”,我会看到确认按钮进入“加载程序”,但警报直接关闭。然后发出我的 Ajax 请求,然后显示第二个警报。

谁能帮帮我?

编辑:当前代码:

                Swal.fire({
                    title: 'Change to '+planName,
                    text: message,
                    icon: "info",
                    showCancelButton: true,
                    showLoaderOnConfirm: true,
                    preConfirm: function () {
                        // todo - actually change the plan!
                        return $.ajax({
                            url: changeUrl,
                            method: 'POST'
                        }).done(function(){
                            Swal.fire({
                                title: 'Plan changed !',
                                icon: 'success',

                            },function() {
                                location.reload();
                            })
                        });
                    }
                });

【问题讨论】:

    标签: javascript sweetalert confirm sweetalert2


    【解决方案1】:

    这样做怎么样

    Swal.fire({
      title: 'Change to '+planName,
      text: message,
      icon: "info",
      showCancelButton: true,
      showLoaderOnConfirm: true,
      preConfirm: function () {
        // todo - actually change the plan!
        return $.ajax({
          url: changeUrl,
          method: 'POST'
        }).done(function(){
          Swal.fire({
            title: 'Plan changed !',
            icon: 'success',
    
          },function() {
            location.reload();
          })
        });
      }
    });
    

    这是一个具有类似实现的沙盒 https://codesandbox.io/s/muddy-smoke-5gwf0

    【讨论】:

    • 谢谢你的!已经好多了!当我单击确定时,按钮切换到加载模式,并且在发出 Ajax 请求时,第一个警报仍然存在。但是一旦请求完成,第一个警报就会关闭,但第二个警报不会打开。我试图按照您的指示并从沙箱中的代码中获得灵感,但我不明白这似乎是一致的。我用当前代码更新了我的第一篇文章
    • 我也试过你的代码。在沙箱中,它可以工作,但是当我将它放在我的应用程序中进行测试时,我遇到了完全相同的问题。
    • 你能分享一些相同的链接吗?
    • 哇,我觉得有问题...... codepen.io/kiuega/pen/vYEPWwq?editors=1010 这里完美运行。如果我从我的应用程序'测试相同的代码,它就不起作用。除了在我的应用程序中,我再次使用 webpack-again 来全局加载 SweetAlert2。另一方面,如果我插入 sweetAlert 的 CDN,那么它也非常适合我。很奇怪
    • 我解决了这个问题。太棒了……我删除了 sweetAlert2 包并重新安装了它。现在它可以工作了。不知道为什么之前有问题,很奇怪
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多