尝试在成功消息后重新加载页面,但未重新加载。
我有这个代码
$.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)
答案 0 :(得分:0)
确保您使用的是Sweetalert的新版本(在jsfiddle中,您可以找到2.1.2)-我收到有关使用不推荐使用的ViewPager
和showConfirmButton
属性的警告。这是在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");
}
}
});
});