一、前言
使用bootstrap-datepicker和bootstrapValidator也有一段时间了,在工作中发现两者同时使用时会出现的一种问题,当选择完日期后,并不会正确校验该字段。为了更加直观的展现问题,上图一张。
可以看出,当选择完日期后,校验结果并没有达到预期,是因为bootstrapValidator插件默认情况下,不会重复校验一个已经标记为验证通过或验证不通过的字段。so ,当开始触发校验后,没有通过校验,当正确选择日期后,并不会刷新校验结果,就会导致数据无法正常提交,当手动把日期改变后,会发现校验被正确触发了。现在就说解决方法。
二、问题解决
根据应用场景分析,当日期选择插件关闭时,期望能够触发校验。所以使用bootstrap-datepicker的hide方法。当日期选择框关闭时,执行刷新校验。先贴代码再解释:
/* 加载时间选择插件 */ $("#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'); });
updateStatus方法的作用是更新给定字段的校验状态,官方介绍如下:
validateField方法的作用是触发给定字段的校验
boostrapValidator官方文档地址:http://bv.doc.javake.cn/api/
bootstrap-datepicker文档地址:http://bootstrap-datepicker.readthedocs.io/en/latest/
三、完整示例
1、JSP中
<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中初始化
<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与My97日期校验的实例代码,包括了BootStrapValidator与My97日期校验的实例代码的使用技巧和注意事项,需要的朋友参考一下 首先my97的API中有自定义事件中有 onpicking 和 onpicked 事件 、onclearing 和 oncleared 事件、年月日时分秒的 changing和changed。 我的ht
本文向大家介绍BootstrapValidator不触发校验的实现代码,包括了BootstrapValidator不触发校验的实现代码的使用技巧和注意事项,需要的朋友参考一下 一、前言 BootstrapValidator是基于bootstrap3的jquery表单验证插件,是最适合bootstrap框架的表单验证插件,在工作中用到此框架就写下自己在使用中积累的一些心得 二、问题描述 当按钮的类型
我的问题是,当我按Submit时,应用程序崩溃,并在调试中触发以下异常: 这是日期类、保存按钮和日历对话框片段的代码:
我无法从日历中选择数据,因为它没有可选择的id。 下面是我的HTML代码, 我试过的代码是 但无法选择日期 申请的网址: http://demo.guru99.com/V4/ 用户名: mgr123密码: mgr!23 单击左侧窗格中的新帐户,选择上面讨论的所需页面。 有人能帮忙选择日期吗?
我已经记录了用于从日期选择器中选择日期的selenium代码。在运行测试用例时,日期选择器会弹出并正确突出显示所选日期。但是没有选择日期。代码如下所示:- 此异常仅出现在记录的代码中。我使用的是selenium-server-standalone-2 . 45 . 0 jar。
我有一个带有方法的model类,它用@preupdate进行了注释。此方法调用我的方法: 我的实现: