近期在使用MVC4開發項目的時候,突然遇到一個比較奇特的bug,就是在用mvc4 自帶的validate.js驗證DateTime的時候總是報錯(如下圖)。
經過反復檢測,我發現以下幾個問題:
1、如果日期格式是“2012/10/22”的時候,驗證就通過了。
2、IE6,7,8等瀏覽器才會出現驗證錯誤,IE9和FireFox(最新)並未出現類似bug.
綜上所述,我上網查了下資料最后看到這樣的一個帖子: demo.tc/Post/762
簡單的來說,這是一個bug.
具體的解決方案如下:
新建一個js文件:jquery.validate.plus.js
jQuery.validator.methods.date =
function (value, element) {
return this.optional(element) || (/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value));}
return this.optional(element) || (/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value));}
然后在引用js庫的時候這樣處理就行了:
<script type="text/javascript" src="/Scripts/jquery.validate.js"></script>
<script type="text/javascript" src="/Scripts/jquery.validate.plus.js"></script>
<script type="text/javascript" src="/Scripts/jquery.validate.plus.js"></script>