PreventDefault SweetAlert2

时间:2018-11-13 16:32:22

标签: javascript jquery sweetalert sweetalert2

我得到了覆盖我的本机js警报的函数:

function alert(message, title = 'Test', type = 'info')
{
    // event.preventDefault();
    if(typeof(swal) != 'undefined') {
        swal({
            html: message,
            title: title,
            type: type,
            width: '24rem',
        }).then((result) => {
            return result.value;
        });
    }
    else {
        alert(message);
    }
}

在我的PHP函数结束时,我有一个警报(“成功”),然后重定向到另一个页面。有了本机JS警报,它等待我单击“确定”按钮继续。现在有了此swal函数,它可以显示警报并立即重定向。有没有办法避免这种行为并像本机警报一样操作,而无需更改功能签名?

1 个答案:

答案 0 :(得分:0)

区别在于alert()是模态的。这意味着它将阻止所有其他输入和输出,直到被关闭为止。 Sweetalert不是。

通过使用在Sweetalert中单击“确定”按钮时执行的回调函数,可以使其行为类似。您可以通过将函数传递到alert(),然后在then()块中调用它来实现,就像这样:

function alert(message, title = 'Test', type = 'info', callback) {
  if (typeof(swal) != 'undefined') {
    swal({
      html: message,
      title: title,
      type: type,
      width: '24rem',
    }).then(() => {
      callback && callback();
    });
  } else {
    alert(message);
    callback && callback();            
  }
}

// example usage:
alert('foo bar', 'title', 'info', function() {
  window.location.assign('somewhere_else.php');
});