IE8-11,bootstrap-datetimepicker,控件有值,但无法通过验证
闲话不多说
问题描述:上图,bootstrap-datetimepicker明明有值,却提示必须填写,而且明显是客户端验证不通过,不是服务器端,因此主要查看jquery.validate.js,
解决方法:
问题根本其实是jquery.min.js和jquery.validate.js的版本对应关系问题,
原来是jquery.validate.js解析bootstrap-datetimepicker中时间值出现问题;因此需要加入
<!--[if lt IE 9]>
<script type="text/javascript">
$(function () {
$.validator.methods.date = function(value, element) {
return this.optional(element) || !/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(new Date(value).toString());
};
});
</script>
<![endif]-->
但经测试IE11也有该问题,因此要去掉IE版本的判断,最终解决为
<script type="text/javascript">
$(function () {
$.validator.methods.date = function(value, element) {
return this.optional(element) || !/^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(new Date(value).toString());
};
});
</script>