甜蜜警报重定向到相同的 jsp 与更改部分

sweet alert redirect to same jsp with changing section

这是我的 home.jsp,我的甜蜜提醒重定向到同一页面的其他部分。重定向成功但甜蜜警报未关闭。如果我将 closeOnConfirm 设置为真正的重定向不起作用。

$(document).ready(function(){
$(".btn").on("click",function(){
var dataString=$("#myForm").serialize();
$.ajax({
                    type: "POST",
                    url: "some.jsp",
                    dataType: 'json',
                    data: dataString,
                    success: function (data) {
                        console.log(data);//"success"
                        if (data.stat === "success") {
                            swal({
                                title: "Submitted!",
                                closeOnConfirm: false
                            }, function () {
                                window.location.href="home.jsp#about";
                            });
                        } else if (data.stat === "failed") {
                            swal({
                                title: "Submission Failed!",
                                closeOnConfirm: true
                            });
                        }
                    },
                    error: function (data) {
                        console.log(data);
                    }
                });
});
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.css" rel="stylesheet"/>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.js"></script>
<div id="myForm">
<form>
<input type="text" name="text">
<input type="button" value="Send" class="btn">
</form>
</div>
<div id="about">
<!-- Some Data -->
</div>

尝试按照以下方式更改您的 sweetalert 配置,它工作正常

sweetAlert({
  title: "Hello",
  text: "<button type='button' class='btn btn-fb fb-share'>Share on Facebook</button>",
  type: null,
  confirmButtonText: "Close",
  html: true,
  closeOnConfirm: true, //It does close the popup when I click on close button
  closeOnCancel: true,
  allowOutsideClick: true
}, function() {});

$(document).on("click", ".fb-share", function(e) {
  //do something else
  openFbPopup();
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.js"></script>

swal.close() 在回调函数中解决了我的问题。

$(document).ready(function() {
  $(".btn").on("click", function() {
    var dataString = $("#myForm").serialize();
    $.ajax({
      type: "POST",
      url: "some.jsp",
      dataType: 'json',
      data: dataString,
      success: function(data) {
        console.log(data); //"success"
        if (data.stat === "success") {
          swal({
            title: "Submitted!",
            confirmButtonText: "Visit About",
            closeOnConfirm: false
          }, function() {
            window.location.href = "home.jsp#about";
            swal.close();
          });
        } else if (data.stat === "failed") {
          swal({
            title: "Submission Failed!",
            closeOnConfirm: true
          });
        }
      },
      error: function(data) {
        console.log(data);
      }
    });
  });
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.css" rel="stylesheet" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.js"></script>
<div id="myForm">
  <form>
    <input type="text" name="text">
    <input type="button" value="Send" class="btn">
  </form>
</div>
<div id="about">
  <!-- Some Data -->
</div>