ASP.NET MVC4 validate验证遇到DateTime 类型的Bug(完整解决方案)
Posted on 2012-10-22 14:44 Leon zhang 阅读(1961) 评论(4) 编辑 收藏 举报近期在使用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>