javascript - 使用 bootstrap 4 模板提交表单时,Ajax 在 IE 和 Edge 中有效,但在 Firefox 中无效
问题描述
我正在尝试验证表单输入字段并在提交表单之前使用引导程序 4 模板(称为 Deskapp)在登录页面中运行 Ajax 代码。只有两个输入字段用户名和密码。
大部分代码已由模板提供,我只是根据需要调整了代码。该代码在 IE 和 Edge 中运行良好,但 Ajax 代码在 Firefox 中无法运行。
// html code
<div class="login-wrap customscroll d-flex align-items-center flex-wrap justify-content-center pd-20">
<div class="login-box bg-white box-shadow pd-30 border-radius-5">
<img src="vendors/images/login-img.png" alt="login" class="login-img">
<h2 class="text-center mb-30">Login</h2>
<form class="needs-validation" novalidate>
<div class="input-group custom input-group-lg">
<input class="form-control" name="userid" type="number" placeholder="userid" required="required">
<div class="input-group-append custom input-tip-div" class="input-tip-div">
<span class="input-group-text"><i class="fa fa-user" aria-hidden="true"></i></span>
</div>
<div class="invalid-feedback"> <?php echo REQUIRED.NUMBERS;?>
</div>
</div>
<div class="input-group custom input-group-lg">
<input type="password" class="form-control" placeholder="**********">
<div class="input-group-append custom">
<span class="input-group-text"><i class="fa fa-lock" aria-hidden="true"></i></span>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="input-group">
<input id="send" class="btn btn-outline-primary btn-lg btn-block" type="submit" value="Sign In">
</div>
</div>
</div>
</form>
</div>
</div>
// script code
(function() {
'use strict';
window.addEventListener('load', function() {
// Fetch all the forms we want to apply custom Bootstrap validation styles to
var forms = document.getElementsByClassName('needs-validation');
// Loop over them and prevent submission
var validation = Array.prototype.filter.call(forms, function(form) {
form.addEventListener('submit', function(event) {
if (form.checkValidity() == false) {
event.preventDefault();
event.stopPropagation();
}
form.classList.add('was-validated');
$.ajax({
type:"POST",
url:"user/logindo.php",
data: $("#send").closest("form").serialize(),
success:function (data) {
alert ("This is the Data from Json: "+data);
}
});
}, false);
});
}, false);
})();
我希望首先验证表单输入字段,然后执行 Ajax 代码,最后提交表单。
在 Firefox 中的实际结果,两个输入字段验证正确,然后 Firefox 忽略 Ajax 代码并提交表单,但 IE 和 Edge 浏览器通过按预期执行所有代码顺利运行。先感谢您
解决方案
推荐阅读
- python - 使用 Amadeus Airport Search 自动完成 API 时出现 503:“服务不可用”
- r - 在 R 中绘制似然函数、先验分布和后验分布
- c++ - 向量后推在构造函数类内部不起作用
- python - 从 2gb .csv 文件中的 json 提取值的最佳方法
- watson-assistant - 关于如何在 IBM Watson Assistant 中将数字格式化为货币的建议
- javascript - 在 JSON 中存储样式值的最佳方式
- sql-server - 通过用NULL替换数据来缩小数据库?
- html - 访问 Web 服务器上的图像时出现奇怪的权限被拒绝问题
- r - 如何使用 ', pattern = ' 从可能的后缀列表中选择文件
- typescript - Vue 3/Typescript:找不到模块 xxx 或其相应的类型声明。威图尔(2307)