bootstrap datepicker 與bootstrapValidator同時使用時選擇日期后無法正常觸發(fā)校驗的解決思路
一、前言
使用bootstrap-datepicker和bootstrapValidator也有一段時間了,在工作中發(fā)現(xiàn)兩者同時使用時會出現(xiàn)的一種問題,當(dāng)選擇完日期后,并不會正確校驗該字段。為了更加直觀的展現(xiàn)問題,上圖一張。

可以看出,當(dāng)選擇完日期后,校驗結(jié)果并沒有達(dá)到預(yù)期,是因為bootstrapValidator插件默認(rèn)情況下,不會重復(fù)校驗一個已經(jīng)標(biāo)記為驗證通過或驗證不通過的字段。so ,當(dāng)開始觸發(fā)校驗后,沒有通過校驗,當(dāng)正確選擇日期后,并不會刷新校驗結(jié)果,就會導(dǎo)致數(shù)據(jù)無法正常提交,當(dāng)手動把日期改變后,會發(fā)現(xiàn)校驗被正確觸發(fā)了?,F(xiàn)在就說解決方法。
二、問題解決
根據(jù)應(yīng)用場景分析,當(dāng)日期選擇插件關(guān)閉時,期望能夠觸發(fā)校驗。所以使用bootstrap-datepicker的hide方法。當(dāng)日期選擇框關(guān)閉時,執(zhí)行刷新校驗。先貼代碼再解釋:
/* 加載時間選擇插件 */
$("#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方法的作用是更新給定字段的校驗狀態(tài),官方介紹如下:

validateField方法的作用是觸發(fā)給定字段的校驗

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 : '企業(yè)注冊時間無效',
validators : {
notEmpty : {
message : '企業(yè)注冊時間不能為空'
},
date : {
format : 'YYYY/MM/DD',
message : '日期格式不正確'
}
}
}
}
});</span>
效果展示

以上所述是小編給大家介紹的bootstrap datepicker 與bootstrapValidator同時使用時選擇日期后無法正常觸發(fā)校驗的解決思路,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
基于JavaScript實現(xiàn)抽獎系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了基于JavaScript實現(xiàn)抽獎系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01
echarts地圖繪制自定義標(biāo)記實現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于echarts地圖繪制自定義標(biāo)記實現(xiàn)的相關(guān)資料,ECharts地圖是一個功能強(qiáng)大的數(shù)據(jù)可視化工具,基于百度ECharts開源項目開發(fā)而成,它主要用于在網(wǎng)頁中展示各種地理數(shù)據(jù)和地圖的信息,需要的朋友可以參考下2023-11-11
深入理解JavaScript繼承的多種方式和優(yōu)缺點
這篇文章主要介紹了深入理解JavaScript繼承的多種方式和優(yōu)缺點,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05

