SweetAlert 2 - 表单提交(超出最大调用堆栈大小)
2017-08-16
1839
我遇到了 SweetAlert 2 的问题,我尝试在用户单击“确定”时提交表单。
代码如下(使用 jQuery)
$('#sa-params').click(function(e) {
e.preventDefault();
e.stopPropagation();
swal({
title: 'Are you sure?',
text: "You won't be able to revert this!",
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, delete it!',
cancelButtonText: 'No, cancel!',
confirmButtonClass: 'btn btn-success',
cancelButtonClass: 'btn btn-danger',
buttonsStyling: false
}).then(function () {
swal(
'Deleted!',
'It has been deleted, FOREVER!',
'success'
)
$('form#delete-form').submit();
}, function (dismiss) {
if (dismiss === 'cancel') {
swal(
'Cancelled',
'Relax, nothing has been deleted :)',
'error'
)
}
})
return false;
});
出现以下 JavaScript 错误:
Uncaught (in promise) RangeError: Maximum call stack size exceeded
最主要的是,如果我将表单提交替换为
console.log('success')
,则不会显示错误。
根据 bower.json:
jQuery 版本为:2.2.4
SweetAlert2 版本为:5.3.8
2个回答
$('form#delete-form')[0].submit();
解决了我的问题,我不知道为什么我没有尝试过...
Andrejs Gubars
2017-08-16
解决方案 在你的文件 sweetalert.js 中
注释掉:
$targetElement.focus();
或者在你的文件 sweetalert.min.js 中
b.focus()
可能在 413 行。
Brayan Pastor
2019-01-16