bootstrap-datepicker日历插件 与bootstrapValidator验证同时使用时无效
2017-07-09 07:13
411 查看
一、前言
使用bootstrap-datepicker和bootstrapValidator也有一段时间了,在工作中发现两者同时使用时会出现的一种问题,当选择完日期后,并不会正确校验该字段。为了更加直观的展现问题,上图一张。可以看出,当选择完日期后,校验结果并没有达到预期,是因为bootstrapValidator插件默认情况下,不会重复校验一个已经标记为验证通过或验证不通过的字段。so ,当开始触发校验后,没有通过校验,当正确选择日期后,并不会刷新校验结果,就会导致数据无法正常提交,当手动把日期改变后,会发现校验被正确触发了。现在就说解决方法。
二、问题解决
根据应用场景分析,当日期选择插件关闭时,期望能够触发校验。所以使用bootstrap-datepicker的hide方法。当日期选择框关闭时,执行刷新校验。先贴代码再解释:方案一:
[javascript] view
plain copy
/* 加载时间选择插件 */
$("#companyRegisteTime").datepicker({
todayBtn : "linked",
autoclose : true,
todayHighlight : true,
endDate : new Date()
}).on('hide',function(e) {
$('#enterpriseInfoForm').data('bootstrapValidator')
.updateStatus('companyRegisteTime', 'NOT_VALIDATED',null)
.validateField('companyRegisteTime');
});
方案二:
[javascript] view
plain copy
/* 加载时间选择插件 */
$("#companyRegisteTime").datepicker({
todayBtn : "linked",
autoclose : true,
todayHighlight : true,
endDate : new Date()
}).on('changeDate change',function(e) {
$('#enterpriseInfoForm').data('bootstrapValidator')
.updateStatus('companyRegisteTime', 'NOT_VALIDATED',null)
.validateField('companyRegisteTime');
});
或者change,changeDate,change三个相结合
updateStatus方法的作用是更新给定字段的校验状态,官方介绍如下:
validateField方法的作用是触发给定字段的校验
boostrapValidator官方文档地址:http://bv.doc.javake.cn/api/
bootstrap-datepicker文档地址:http://bootstrap-datepicker.readthedocs.io/en/latest/
三、完整示例
1、JSP中
[java] viewplain copy
<form method="post" action="${ctx }/corp/enterpriseInfo/saveCorpInfo.htm" enctype="multipart/form-data" id="enterpriseInfoForm" name="enterpriseInfoForm">
<div class="col-md-5 col-md-offset-1 mar-top">
<div class="form-horizontal">
<div class="form-group">
<label class="col-md-3 control-label">公司注册时间:</label>
<div class="col-md-9">
<input type="text" class="form-control" id="companyRegisteTime" name="companyRegisteTime" value="${corpInfo.companyRegisteTime }">
</div>
</div>
</div>
</div>
</form>
2、js中初始化
[javascript] viewplain copy
<span style="font-size:18px;">$('#enterpriseInfoForm').bootstrapValidator({
message : '该值无效',
feedbackIcons : faIcon,
excluded : ':disabled',
fields : {
companyRegisteTime : {
message : '企业注册时间无效',
validators : {
notEmpty : {
message : '企业注册时间不能为空'
},
date : {
format : 'YYYY/MM/DD',
message : '日期格式不正确'
}
}
}
}
});</span>
效果展示
相关文章推荐
- bootstrap-datepicker 与bootstrapValidator同时使用时,选择日期后,无法正常触发校验
- bootstrapValidator表单验证使用方法
- bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
- bootstrap-datepicker 与bootstrapValidator同时使用时,选择日期后,无法正常触发校验
- Date Range Picker和bootstrapValidator同时使用时,选择日期后无法正常触发校验
- 【bootstrapValidator 不验证】使用bootstrapValidator 验证效果不起作用
- bootstrap-datepicker 与bootstrapValidator同时使用时,选择日期后,无法正常触发校验
- bootstrap-validator 验证一个标签同时验证另一个指定标签
- 关于使用JavaScript触发ASP.NET Validator验证的问题
- 使用fValidator+iMask实现客户端验证
- strutsz中使用validator进行验证
- 在Struts中使用Validator验证框架详解
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证....
- Validator验证框架(在Struts中使用注意)
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
- 回发或回调参数无效。在配置中使用 <pages enableEventValidation= "true "/> 或在页面中使用 <%@ Page EnableEventValidation= "true " %> 启用了事件验证
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEvent
- Validator验证框架使用教程
- 在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式
- 解决『回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。』问题