javascript - Modal 需要验证字段是否已输入,并在单击提交按钮时关闭
问题描述
我有一个我正在处理的模式,无论出于何种原因,要么在单击提交时关闭而不验证表单字段输入,要么它会在输入时简单地重新加载表单并且永远不会消失,从而阻止我的网页被看到。我的想法是,这将在打开网页时显示,用户需要在其中输入信息,然后不受阻碍地继续访问我的网页的其余部分。我的模态表单代码如下:
<div class="modal fade" id="formModal" tabindex="-1" role="dialog" aria-labelledby="formModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h3 class="modal-title" id="formModalLabel">Services Contact Form</h3>
<button type="button" class="close" aria-label="close">
<span aria-hidden="true">×</span>
</button>
</div>
<form id="formAwesome">
<div class="modal-body">
<div class="form-group row">
<label for="firstName" class="col-sm-6 col-form-label">
First name
</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="firstName" placeholder="John" required>
</div>
</div>
<div class="form-group row">
<label for="lastName" class="col-sm-6 col-form-label">
Last name
</label>
<div class="col-sm-6">
<input type="text" class="form-control" id="lastName" placeholder="Doe" required>
</div>
</div>
<div class="form-group row">
<label for="email" class="col-sm-6 col-form-label">
E-mail address
</label>
<div class="col-sm-6">
<input type="email" class="form-control" id="email" placeholder="john.doe@email.com" required>
</div>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="awesomeCheck">
<label class="form-check-label" for="awesomeCheck">
Yes, I consent to contact.
</label>
</div>
</div>
<div class="modal-footer">
<!--<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button> -->
<button type="submit" class="btn btn-primary" >Submit</button>
</div>
</form>
</div>
</div>
</div>
这是我的CSS:
<style>
#loading-img{
display:none;
}
.response_msg{
margin-top:10px;
font-size:13px;
background:#E5D669;
color:#ffffff;
width:250px;
max-width:100%;
padding:3px;
display:none;
}
</style>
finally with this being my ajax query:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#contact-form").on("submit",function(e){
e.preventDefault();
if($("#contact-form [name='your_name']").val() === '')
{
$("#contact-form [name='your_name']").css("border","1px solid red");
}
else if ($("#contact-form [name='your_email']").val() === '')
{
$("#contact-form [name='your_email']").css("border","1px solid red");
}
else
{
$("#loading-img").css("display","block");
var sendData = $( this ).serialize();
$.ajax({
type: "POST",
url: "get_response.php",
data: sendData,
success: function(data){
$("#loading-img").css("display","none");
$(".response_msg").text(data);
$(".response_msg").slideDown().fadeOut(3000);
$("#contact-form").find("input[type=text], input[type=email], textarea").val("");
}
});
}
});
$("#contact-form input").blur(function(){
var checkValue = $(this).val();
if(checkValue != '')
{
$(this).css("border","1px solid #eeeeee");
}
});
});
</style>
同样,我希望能够在单击提交时验证我的模态表单,然后关闭而无需一遍又一遍地重新打开(目前正在发生)。到目前为止,我已经尝试了以下方法:
$('#CompanyProfile').modal('hide');
然后:
<button type="button" id="close_btn" class="close" data-dismiss="modal" aria-hidden="true">
<i class = "icons-office-52"></i>
</button>
$("#close_btn").trigger("click");
然后:
$('#closemodal').click(function() {
$('#modalwindow').modal('hide');
});
这些要么只是关闭模式,要么不允许进行验证过程。如果我问的是不可能的。我想讨论替代方案。
解决方案
推荐阅读
- c# - 无论如何我们可以在 C# 中更新视图
- svg - svg 模式定义中的图像标签不接受 svg 格式的图像
- wordpress - WooCommerce 无需登录即可为手动创建的订单付款
- ffmpeg - 当我对视频进行编码时,出现错误“可能参数不正确,例如 bit_rate、速率、宽度或高度”
- reactjs - 使用类的状态变量中的数据以 3 列格式动态生成卡片
- f# - 有没有更简洁的方法来处理 F# 中的双可空类型?
- apache-kafka - Kafka Producer:使用回调处理异步发送中的异常
- javascript - Firefox无法注册Service Worker,操作不安全
- c# - C# 中的套接字编程这被认为是轮询吗?
- ios - 混合 Objective-C/Swift 框架的模块映射位置和编译器设置