博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

近期在使用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));}

 

然后在引用js库的时候这样处理就行了:

<script type="text/javascript" src="/Scripts/jquery.validate.js"></script>
<script type="text/javascript" src="/Scripts/jquery.validate.plus.js"></script>