JavaScript sweetAlert弹出窗口在短暂的一秒后自动关闭

3

我有一个SweetAlert弹窗,但它会自动关闭。通常情况下,它应该等到用户点击“确定”才关闭。(我已经包含并测试了所有SweetAlert文件。)

<button class="btn btn-success" type="submit" name="submit" onclick="myFunction()">Submit</button>

<script>
function myFunction() {
    swal("Submitted!", "Your Issue has been submitted!", "success");
}
</script>

4
你尝试过什么?如果那是一个提交按钮,你的页面在警示框完成前就改变了吗? - Mike Cluck
3个回答

9

看起来这是一个表单提交,所以当你点击按钮时页面会刷新。这就是为什么你会看到警报一秒钟然后就消失了。

<button class="btn btn-success" type="submit" name="submit" onclick="myFunction()">Submit</button>

您需要将按钮类型更改为button
   <button class="btn btn-success" type="button" onclick="myFunction()">Submit</button>

1
只是为了追加一点:即使你改变按钮的类型,如果它在<form>标签内部,你仍然需要将按钮移除。 - Diego Felipe
非常感谢,这救了我的一天。 - Jalil.Jarjanazy

1
请注意,如果您的按钮是表单提交的一部分,则问题284表明它目前不受支持。您可以将按钮更改为常规按钮(而不是提交按钮),并在sweetalert回调中以编程方式提交表单。

0

我有一个类似的问题... 当点击弹出窗口之外的区域时,弹出窗口会自动关闭并且页面会非常快速地切换...

我尝试了以下代码来阻止关闭sweetalert本身,并在用户点击sweetalert窗口的"确定"按钮时刷新页面。

HTML:

<form  method="post" action="contact.php" name="myform" onsubmit="return myFunction()">

<input type="text" class="form-control" name="full" placeholder="* Full Name" required="" >

<input type="text" class="form-control" name="last" placeholder="* Last Name" required="">

<input type="submit" value="send" name="sends" class="btn btn-lg">

</form>

JavaScript

<script type="text/javascript">
function myFunction() {
  var full=document.myform.full.value;
  var last=document.myform.last.value;
  if (full==null || last==null){
    swal("Error...!!!!!!");
    return false;
}else{
    swal("Congrats!", ", Your account is created!", "success");
    return true;}
}
</script>

1
如果您在表单中不使用重定向(到页面“contact.php”),您应该将提交函数更改为:onsubmit="event.preventDefault(); return myFunction();",并改为向页面发出ajax请求。否则,您将被重定向。 - Nazarko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接