jquery - Bootstrap 4 验证不会停止发送无效表单
问题描述
我有带有 Ajax 表单的模块,可以在他们的电子邮件之后将用户添加到组(如果此电子邮件存在于 db 中);后端正在工作并处理数据,前端正在接收响应。
然而,我的 bootstrap 4 表单验证有问题:它不会停止 ajax 发送,无论表单是否正确,但仍然有验证提示弹出窗口。
HTML 表格
<form id="form-add-users" class="form-validate">
<div class="input-group">
<div class="input-group-prepend">
<span class="input-group-text">Email</span>
</div>
<input type="email" class="form-control" name="user-email" aria-label="email User" required>
<div class="input-group-append">
<button id="btn-add-users" type="submit" class="btn btn-primary">Add</button>
</div>
</div>
<div class="text-center" id="user-verification-tooltip"></div>
<input type="text" value="addUser" name="post-action" style="display: none;">
<input type="text" value="<?= $this->id; ?>" name="group-id" style="display: none;">
</form>
脚本
$("#btn-add-users").click(function(e) {
//e.preventDefault() //Totally stops bootstrap form validation
var form = $("#form-add-users");
var data = form.serialize();
$.ajax({
type: "POST",
data: {
'option': 'com_ajax',
'module': 'my_module',
'data': data,
'format': 'raw'
},
success: function(data) {
var response = JSON.parse(data);
console.log(response);
if (response[0] == 0) {
console.log('ok');
//$('#tableUsers tr:last').after(response[2]);
//setForm(userVerif, userInput, userTable, true, response[1])
} else {
//setForm(userVerif, userInput, userTable, false, response[1])
}
}
});
});
例子 :
- 电子邮件值 = "" => 需要工具提示字段 => Ajax 仍然发送电子邮件
- value = "aaa" => Tooltip not valid email format => Ajax 仍然发送
- 电子邮件值 = "aaa@aaa.aaa" => 没有工具提示 => Ajax 仍然发送
欢迎任何关于失败原因的提示:)
干杯
解决方案
假设您已正确配置验证,那么问题是因为您已绑定到click
的而button
不是. 尝试这个:submit
form
$("#form-add-users").on('submit', function(e) {
e.preventDefault();
let data = $(this).serialize();
// your ajax request...
});
推荐阅读
- unity3d - Unity URP 看起来很奇怪的光照贴图问题
- javascript - 离子变量损失
- java - 我在 Java 中使用什么将等同于 Javascript 中的 Async Await?
- c++ - 如何将 Code::Blocks 语言更改为英语
- web-scraping - 如何找出表中的原始数据在哪里?
- unity3d - Luasocket收到大量数据包后意外关闭
- paypal - 将附加参数传递给贝宝按钮 url
- javascript - 为什么箭头函数作为 JavaScript 对象属性没有得到 this 的引用?
- java - 如何更改对象字段的呈现方式,同时仍保留所述字段的原始值?
- dart-pdf - pdfImageFromImageProvider 新实现