Asp.net mvc 4 字段';出生日期';必须是日期MVC 4、internet explorer 11

Asp.net mvc 4 字段';出生日期';必须是日期MVC 4、internet explorer 11,asp.net-mvc-4,internet-explorer-11,Asp.net Mvc 4,Internet Explorer 11,此线程中也问了相同的问题,但我有一个稍微不同的问题。我在使用internet explorer 11时出错,无法找出原因。 这是我模型中的属性 [必需] [显示(Name=“出生日期”)] [数据类型(数据类型.日期时间)] 公共日期时间出生日期{get;set;} jQuery是 $(函数(){ dateFormat:$.datepicker.RFC_1123; $('BirthDate').attr('readonly',true); $('#BirthDate')。日期选择器({date

此线程中也问了相同的问题,但我有一个稍微不同的问题。我在使用internet explorer 11时出错,无法找出原因。
这是我模型中的属性

[必需]
[显示(Name=“出生日期”)]
[数据类型(数据类型.日期时间)]
公共日期时间出生日期{get;set;}

jQuery是


$(函数(){
dateFormat:$.datepicker.RFC_1123;
$('BirthDate').attr('readonly',true);
$('#BirthDate')。日期选择器({dateFormat:“d/M/yy”});
});
和文本框的代码

@Html.TextBoxFor(model=>model.RFI.BirthDate,“{0:dd/MMM/yyyy}”,new{datepicker=true,@class=“textbox\u medium”,id=“BirthDate”})

为了支持这种格式,我在jquery.validate.js文件中,在“date:function(value,element)”的函数定义中编写了以下代码

如果($.browser.webkit){

//ES-Chrome在实例化新日期对象时不使用区域设置:
var d=新日期();

返回此.optional(element)| | |!/Invalid | NaN/.test(新日期(d.toLocaleDateString(value));
}
否则{

返回此.optional(element)| |!/Invalid | NaN/.test(newdate(value));
}


上述代码在Crome中正常工作,但在InternetExplorer11中不工作。首先,它给出了webkit的错误,然后我更改了日期函数的定义(用以前的定义替换代码),但仍然给出了一个错误“生日必须是日期”

我对您的场景进行了全面测试。IE在jquery.validate.js中进行以下检查时出错:

    // http://docs.jquery.com/Plugins/Validation/Methods/date
    date: function( value, element ) {
        return this.optional(element) || !/Invalid|NaN/.test(new Date(value).toString());
    },
为了快速验证,您可以尝试在IE和Chrome的Console中编写以下内容:

new Date('01/Jun/2001');
在Chrome中,您将获得一个有效的日期,在IE中,您将获得一个无效的日期

要解决此问题,请将日期桩中的格式更改为默认格式“dd/mm/yy”:


这是一个javascript错误,还是您的表单被发布到服务器,而您从服务器得到一个错误?如果你在你的操作中设置了一个断点(你提交了这个表单),那么这个字段在模型中是否正确填充?@DenisShulepov这不是JavaScript错误,因为我删除了与chrome相关的特定部分。当我按下页面上的“保存”按钮时,我得到了一个错误,“生日”必须是日期,因为我在模型[DataType(DataType.DateTime)]中提到了生日声明。
$('#BirthDate').datepicker({ dateFormat: "dd/mm/yy" });