bootstrap datepicker 與bootstrapValidator同時(shí)使用時(shí)選擇日期后無法正常觸發(fā)校驗(yàn)的解決思路
一、前言
使用bootstrap-datepicker和bootstrapValidator也有一段時(shí)間了,在工作中發(fā)現(xiàn)兩者同時(shí)使用時(shí)會出現(xiàn)的一種問題,當(dāng)選擇完日期后,并不會正確校驗(yàn)該字段。為了更加直觀的展現(xiàn)問題,上圖一張。
可以看出,當(dāng)選擇完日期后,校驗(yàn)結(jié)果并沒有達(dá)到預(yù)期,是因?yàn)閎ootstrapValidator插件默認(rèn)情況下,不會重復(fù)校驗(yàn)一個(gè)已經(jīng)標(biāo)記為驗(yàn)證通過或驗(yàn)證不通過的字段。so ,當(dāng)開始觸發(fā)校驗(yàn)后,沒有通過校驗(yàn),當(dāng)正確選擇日期后,并不會刷新校驗(yàn)結(jié)果,就會導(dǎo)致數(shù)據(jù)無法正常提交,當(dāng)手動(dòng)把日期改變后,會發(fā)現(xiàn)校驗(yàn)被正確觸發(fā)了。現(xiàn)在就說解決方法。
二、問題解決
根據(jù)應(yīng)用場景分析,當(dāng)日期選擇插件關(guān)閉時(shí),期望能夠觸發(fā)校驗(yàn)。所以使用bootstrap-datepicker的hide方法。當(dāng)日期選擇框關(guān)閉時(shí),執(zhí)行刷新校驗(yàn)。先貼代碼再解釋:
/* 加載時(shí)間選擇插件 */ $("#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方法的作用是更新給定字段的校驗(yàn)狀態(tài),官方介紹如下:
validateField方法的作用是觸發(fā)給定字段的校驗(yàn)
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">公司注冊時(shí)間:</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è)注冊時(shí)間無效', validators : { notEmpty : { message : '企業(yè)注冊時(shí)間不能為空' }, date : { format : 'YYYY/MM/DD', message : '日期格式不正確' } } } } });</span>
效果展示
以上所述是小編給大家介紹的bootstrap datepicker 與bootstrapValidator同時(shí)使用時(shí)選擇日期后無法正常觸發(fā)校驗(yàn)的解決思路,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
JavaScript在控件上添加倒計(jì)時(shí)功能的實(shí)現(xiàn)代碼
JavaScript在控件上添加倒計(jì)時(shí)功能,主要原理是利用控件的setEnable(true)/setEnable(false)來進(jìn)行設(shè)置控件的可用與不可用狀態(tài),實(shí)現(xiàn)過程非常簡單,需要的的朋友參考下吧2017-07-07echarts實(shí)現(xiàn)中國地圖下鉆進(jìn)入下一級(地圖鉆取)
最近在學(xué)習(xí)echarts,今天就來介紹一下echarts實(shí)現(xiàn)中國地圖下鉆進(jìn)入下一級,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08JS設(shè)置自定義快捷鍵并實(shí)現(xiàn)圖片上下左右移動(dòng)
這篇文章主要介紹了JS設(shè)置自定義快捷鍵并實(shí)現(xiàn)圖片上下左右移動(dòng),文中通過使用自定義熱鍵或者使用鍵盤上下左右鍵移動(dòng)圖片,以此來實(shí)現(xiàn)此功能,需要的朋友可以參考下2019-10-10Javascript簡單實(shí)現(xiàn)可拖動(dòng)的div
實(shí)現(xiàn)div拖動(dòng)有很多方法,不過目前比較常見的就是使用javascript實(shí)現(xiàn)的了,下面有個(gè)不錯(cuò)的示例,大家可以嘗試操作下2013-10-10基于JavaScript實(shí)現(xiàn)交互式博客
在Web開發(fā)中,JavaScript(JS)是一種至關(guān)重要的編程語言,它使網(wǎng)頁具有交互性,本文主要介紹了如何使用JavaScript實(shí)現(xiàn)一個(gè)交互式博客,需要的可以了解下2024-01-01JavaScript三種方法解決約瑟夫環(huán)問題的方法
約瑟夫環(huán)問題又稱約瑟夫問題或丟手絹問題,是一道經(jīng)典的算法問題,本篇將以循環(huán)鏈表、有序數(shù)組、數(shù)學(xué)遞歸三種方式來解決約瑟夫環(huán)問題。感興趣的可以了解一下2021-09-09微信小程序用戶授權(quán)、位置授權(quán)及獲取微信綁定手機(jī)號
這篇文章主要介紹了信小程序用戶授權(quán)、位置授權(quán)及獲取微信綁定手機(jī)號,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07