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;
});