使用Sweetalert单击“确定”后重新加载页面

时间:2019-01-20 15:07:22

标签: javascript jquery sweetalert2

尝试在成功消息后重新加载页面,但未重新加载。

我有这个代码

$.ajax({
  type: "post",
  url: '/action.cfm?method=quote',
  data: datastring,
  success: function(data) {
    var valid = $.trim(data);
    if (valid.toLowerCase().indexOf("error") == '-1') {
      localStorage.setItem("swal", swal({
        title: "Good job!",
        text: 'Thanks',
        type: "success",
        showConfirmButton: true
      }).then(function() {
        location.reload();
      }));
      localStorage.getItem("swal");
    } else {
      swal("Oops", data, "error");
    }
  }
});

但是我得到一个错误

(index):389 Uncaught TypeError: Cannot read property 'then' of undefined
    at Object.success ((index):389)
    at fire (jquery-1.12.4.js:3232)
    at Object.fireWith [as resolveWith] (jquery-1.12.4.js:3362)
    at done (jquery-1.12.4.js:9840)
    at XMLHttpRequest.callback (jquery-1.12.4.js:10311)

1 个答案:

答案 0 :(得分:0)

确保您使用的是Sweetalert的新版本(在jsfiddle中,您可以找到2.1.2)-我收到有关使用不推荐使用的ViewPagershowConfirmButton属性的警告。这是在jsfiddle中工作的稍微修改的代码:

type

https://jsfiddle.net/wlecki/rwc58h17/

但是总的来说,如果您必须将其存储在浏览器的本地存储中,建议您仅在其中存储一个Sweetalert选项,如果要显示Sweetalert,请使用它们:

$(document).ready(function() {
    $.ajax({
        type: "post",
        url: '/echo/json/',
        data: {},
        success: function(data) {
            var valid = $.trim(data);
            if (valid.toLowerCase().indexOf("error") == '-1') {
                localStorage.setItem("swal", swal({
                    title: "Good job!",
                    text: 'Thanks',
                    icon: "success",
                    button: true
                }).then(function() {
                    console.log('sth');
                    location.reload();
                }));
                localStorage.getItem("swal");
            } else {
                swal("Oops", data, "error");
            }
        }
    });
});

https://jsfiddle.net/wlecki/71vzasxh/