今天遇到的這個問題,說大也不大,說小也不小,折磨我一天了
最早找的是這篇博客當同時使用bootstrap-datepicker.js和jquery.validate.js這兩款插件,至少要選擇兩次時間,才能驗證成功的問題根據這篇文章的思路,我給要驗證的日期input輸入框綁定了一個click時間,當點擊的時候,value為空,日期插件點擊確定之前,實際上validate在一進來已經校驗value了,所以當你選擇好日期點擊確定時,錯誤提示仍然存在,當再次選擇的時候,clcik打印的是上一次的value,value有值所以放行,校驗通過,這樣日期插件就需要點擊兩次,紅色錯誤才能消失這顯示不符合我們的預期,laydate日期控件在值尚未回寫時jquery就已經觸發校驗,所以每次校驗的是之前的數據
剛開始思路局限於,input的onchange事件改變的時候,在調用一次validate驗證,事實證明是錯誤的,最后采用一種簡單粗暴的解決方法,當日期input失去焦點時,通過js手動去掉驗證樣式。
代碼如下:
//#stratTime為日期插件input輸入框的id $("#stratTime").blur(function(){ $("#stratTime").removeClass("error"); $("#stratTime").next().css("display","none") })
PS:方法里去除的樣式,自己可以F12選中看看錯誤信息的樣式如何去掉,僅提供一個思路,如果有更好的方法,歡迎評論區留言哦~