为什么此警报在使用 javascript 时不起作用?

Why this alert doesn't work using javascript?

我正在研究 ASP.NET 并且在视图上我有这样的代码,如果我在函数之外使用甜蜜警报,它会起作用,如果我将甜蜜警报更改为常规警报它也可以工作,但它不像下面的代码那样工作。 (我在视图上也有带库的脚本)

<input type="submit" value="Create" class="btn btn-default" onclick="return foo();" />

<script type="text/javascript">      
       function foo() {
       swal("Good job!", "You clicked the button!", "success")
       return true;
    }
</script>

好的,你忘了包含库 js 和 css

    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.js"></script>
    
    
    


<input type="submit" value="Create" class="btn btn-default" onclick="return foo();" />

<script type="text/javascript">      
       function foo() {
       swal("Good job!", "You clicked the button!", "success")
       return true;
    }
</script>

当您点击提交按钮时,它正在提交一个表单。

有了警报,它会阻止浏览器,因此代码会一直等到您按正确并提交表单。但是问题是当你移动使用sweet alert时,你无法阻止浏览器的动作。所以你将不得不取消点击并手动提交表单。

// called onclick of the submit button
function foo() {
  swal("foo")
    .then(function() {
      // manually submit the form
      document.getElementById("yourFormId").submit()
    });
  return false; // cancel the button click
}
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>

<form id="yourFormId">

  <input type="submit" value="Create" class="btn btn-default" onclick="return foo();" />

</form>