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

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

在此为model.date_of_birth调用EditorFor,并将其与datepicker一起作为@class = datepicker
然后使用以下代码在脚本区域启动日期选择器
 $('.datepicker').datepicker({
            format: 'yyyy-mm-dd',
            autoclose: true
        })

这里的日期格式为'yyyy-mm-dd',可以正常工作,但用户希望它采用dd-mm-yyyy格式。所以我将脚本中的格式更改为dd-mm-yyyy在Internet Explorer中,它运行正常,但在Chrome中,它给出了某个日期的错误
eg:  14-05-2015



日期11-05-2015在chrome中也可以正常工作。所以我想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
        })
});

最佳答案

最后我找到了解决方案。

首先,我创建一个名称为jquery.validate.date.js的新Java脚本文件
上面的代码

$(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));
        }
    };
});

它覆盖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")"/>

现在,日期格式dd/mm/yyyy在chrome和IE中都可以正常使用。

关于asp.net-mvc - MVC的日期选择器的dd-mm-yyyy格式在Chrome中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30971737/

10-14 17:25
查看更多