javascript - sweetalert2 在同一个函数中多次吞咽

标签 javascript modal-dialog sweetalert sweetalert2

我想提出一个条件并为每个条件调用 swal (Sweetalert2)。但只有一个 swal 运行。我该怎么做?

function validateEmail(email) {
  var regex = /\S+@\S+\.\S+/;
  return regex.test(email);
}

function validateBirth(data) {
  var regex = /^([0-9]{2})\/([0-9]{2})\/([0-9]{4})$/;
  return regex.test(data);
}

function validacao() {
  var data = document.getElementById('birth').value;
  var email = document.getElementById('email').value;
  if (!validateBirth(data)) {
    swal(
      'title..',
      'text..',
      'type..'
    );
  }
  if (!validateEmail(email)) {
    swal(
      'title..',
      'text..',
      'type..'
    );
  }
}

最佳答案

2021 年更新:

只需让您的函数 asyncawait 来自 Swal.fire() 的 promise :

async function validacao() {
  var data = document.getElementById('birth').value;
  var email = document.getElementById('email').value;
  if (!validateBirth(data)) {
    await Swal.fire(
      'title..',
      'text..',
      'type..'
    );
  }
  if (!validateEmail(email)) {
    await Swal.fire(
      'title..',
      'text..',
      'type..'
    );
  }
}

旧答案不适用于最新版本的 SweetAlert2:

swal.queue() , 将它用于多个模态。

你的案例应该是这样的:

var modals = [];

// birth modal
if (!validateBirth(data)) {
  modals.push({title: 'title1', text: 'text1', ... });
}

// email modal
if (!validateEmail(email)) {
  modals.push({title: 'title2', text: 'text2', ... });
}

Swal.queue(modals);

关于javascript - sweetalert2 在同一个函数中多次吞咽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38085851/

相关文章:

javascript - 如何在模态中垂直居中图像?

javascript - res.render sweetalert 在 ejs 文件上

javascript - 将 sweetalert2 与 bootstrap 4 结合使用

javascript - 使用removeChild() jquery一次删除两个项目

javascript - Django 制作按钮 Ajax

angular - 调用 NgbModal open 方法的最佳实践

javascript - Sweet Alert 2 - 将 swal 放置在 div 中间

javascript - React 条件渲染和导航栏

javascript - graphqlj-js 联合类型,访问参数

delphi - "Stay on top"Delphi XE中的主窗体和模式对话框