Javascript 表单提交不等待Sweet警报确认

Javascript 表单提交不等待Sweet警报确认,javascript,jquery,codeigniter,sweetalert,Javascript,Jquery,Codeigniter,Sweetalert,我有积垢,想添加甜警报确认框。但我只是添加它来创建表单。很简单,我只想这样: 输入数据 单击提交按钮 甜警报确认出现 单击“是” 数据存储到数据库 返回读取表 这是我的代码: <!-- Form --> <form role="form" method="post" class="form-horizontal" id="tmbhunit" action="<?= base_url() ?>C_unit/create"> <!-- Card Icon

我有积垢,想添加甜警报确认框。但我只是添加它来创建表单。很简单,我只想这样:

  • 输入数据
  • 单击提交按钮
  • 甜警报确认出现
  • 单击“是”
  • 数据存储到数据库
  • 返回读取表
这是我的代码:

<!-- Form -->
<form role="form" method="post" class="form-horizontal" id="tmbhunit" action="<?= base_url() ?>C_unit/create">
<!-- Card Icon -->
<div class="card-header card-header-icon" data-background-color="red">
    <i class="material-icons">account_balance</i>
</div>
<!-- End Card Icon -->

<!-- Card Content -->
<div class="card-content">
    <!-- Card Title -->
    <h4 class="card-title">Tambah Data</h4>
    <!-- End Card Title -->
    <hr>

    <!-- Label Input -->
    <div class="row">
        <label class="col-sm-2 label-on-left" for="namaunit">Nama Unit</label>
        <div class="col-sm-4">
            <div class="form-group label-floating is-empty">
                <label class="control-label"></label>
                <input type="text" class="form-control" id="namaunit" name="nm_unit" required placeholder="Masukan nama unit..">
            </div>
        </div>
    </div>
    <!-- End Label Input -->
    <!-- Label Input -->
    <div class="row">
        <label class="col-sm-2 label-on-left" for="almtunit">Alamat Unit</label>
        <div class="col-sm-4">
            <div class="form-group label-floating is-empty">
                <label class="control-label"></label>
                <input type="text" class="form-control" id="almtunit" name="alamat" required placeholder="Masukan alamat unit..">
                <br>
                <input type="submit" name="submit" id="btn-submit" class="btn btn-primary btn-fill" value="Tambah" />
                <input type="button" name="cancel" class="btn btn-warning btn-fill" value="Cancel" onclick="history.back()" />
            </div>
        </div>
    </div>
    <!-- End Label Input -->

</div>
<!-- End Card Content -->
</form>
<!-- End Form -->

事实上,脚本正在运行,sweet alert也出现了,但是在没有给我机会确认的情况下提前提交了表单,我尝试了每个导师,但没有一次成功。

使用提交前而不是下面的提交功能

 jQuery("body").on("beforeSubmit", "form#tmbhunit", function() {
    // You logic
    return false;
 });

要解决此问题,您需要在jQuery代码中始终停止
submit
事件处理程序的默认行为

然后,当用户确认其选择时,您可以在
if
语句中直接从DOM元素提交表单,如下所示:

$(“#tmbhunit”)。提交(功能(e){
e、 预防默认值();
var nm_单位=$(“#namaunit”).val();
var almtunit=$(“#almtunit”).val();
var form=此;
游泳({
标题:“你确定吗?”,
键入:“警告”,
showCancelButton:true,
confirmButtonColor:#DD6B55“,
confirmButtonText:“是的!”,
cancelButtonText:“取消”,
closeOnConfirm:true
},功能(isConfirm){
如果(我确认){
表单提交();
}
});
});


该警报以异步方式运行,因此本质上您可以这样说:显示警报、完成提交(提交)、等待用户输入、在用户单击警报的“是”后防止默认值(该选项无效)。您需要将
event.preventDefault()
放在
swal()
之外,然后通过代码发布表单(或者将警报移出submit方法)。鉴于它总是返回false,我不认为可能是这种情况。默认情况下,在提交之前也没有
事件,因此必须由您正在使用的库引发。是的,rory先生,您是对的。。我的代码在提交表单而不刷新页面时有效谢谢,提交的表单在未通过sweet警报的情况下有效,但当我单击“是”按钮时,一切都不会发生,只需检查控制台是否有错误。正如您从上面的代码片段中看到的,这应该是可行的fine@Z.Norz您想在哪里发布这些数据意味着哪个
控制器
函数
?在create()函数中,我得到了以下错误:未知参数“closeOnConfig”setParameters@sweetalert2.js:486 modalDependant@sweetalert2.js:806 sweetAlert@sweetalert2.js:1403(匿名)@create:387 dispatch@jquery-3.2.1.min.js:3 q.handle@jquery-3.2.1.min.js:3
 jQuery("body").on("beforeSubmit", "form#tmbhunit", function() {
    // You logic
    return false;
 });