MVC的datepicker的dd-mm-yyyy格式在Chrome中不起作用

Sac*_*chu 5 asp.net-mvc datepicker

在我的MVC5 Razor代码中输入出生日期我正在使用如下的日期选择器

    @Html.EditorFor(model => model.date_of_birth, 
new { htmlAttributes = new { @class = "m-wrap  datepicker" } })
Run Code Online (Sandbox Code Playgroud)

这里的model.date_of_birth一个EditorFor呼吁,使之作为一个datepicker@class = datepicker

然后使用下面的代码在脚本区域启动datepicker

 $('.datepicker').datepicker({
            format: 'yyyy-mm-dd',
            autoclose: true
        })
Run Code Online (Sandbox Code Playgroud)

这里的日期格式是'yyyy-mm-dd',它工作正常,但用户希望它的dd-mm-yyyy格式.所以我改变了脚本中的格式,因为dd-mm-yyyy 在Internet Explorer中它运行正常,但在Chrome中它给出了某个日期的错误

eg:  14-05-2015
Run Code Online (Sandbox Code Playgroud)

字段出生日期*必须是日期.

11-05-2015铬的日期工作正常.所以我猜Chrome正在采用日期格式mm-dd-yyyy.

格式'dd-M-yyyy'也正常工作只有错误dd-mm-yyyy

有什么办法可以克服这个浏览器特定的错

编辑

$.validator.addMethod('date', function (value, element) {
    if (this.optional(element)) {
        return true;
    }
    var valid = true;
    try {
        $.datepicker.parseDate('dd/mm/yyyy', value);
    }
    catch (err) {
        valid = false;
    }
    return valid;
});

$(function () {

 $('.datepicker').datepicker({
            format: 'dd/mm/yyyy',
            autoclose: true
        })
});
Run Code Online (Sandbox Code Playgroud)

Sac*_*chu 9

最后我找到了解决方案.

首先,我创建一个名为的新java脚本文件,jquery.validate.date.js 其中包含以下代码

$(function () {
    $.validator.methods.date = function (value, element) {
        if ($.browser.webkit) {
            var d = new Date();
            return this.optional(element) || !/Invalid|NaN/.test(new Date(d.toLocaleDateString(value)));
        }
        else {
            return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

它会覆盖日期验证功能 jquery.validate.js

然后我'jquery.validate.js'就像下面一样调用脚本

<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.val.js")"/>

<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.val.date.js")"/>
Run Code Online (Sandbox Code Playgroud)

现在日期格式dd/mm/yyyy在chrome和IE中都有效,没有任何错误.