SweetAlert 2 - 表单提交(超出最大调用堆栈大小)

时间:2017-08-16 10:42:09

标签: jquery sweetalert

我遇到SweetAlert 2的问题,我试图在用户点击Okay时提交表单。

代码如下(使用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 个答案:

答案 0 :(得分:1)

$('form#delete-form')[0].submit();

解决我的问题,我不知道为什么我没有尝试过......

答案 1 :(得分:0)

解决方案 在您的文件sweetalert.js

评论:

$targetElement.focus(); 

或您的文件sweetalert.min.js

b.focus()

可能在413行中。

来源:https://github.com/t4t5/sweetalert/issues/104