javascript - 无法在 Chrome 编辑 View 中验证日期格式

标签 javascript jquery google-chrome date asp.net-mvc-5

以前有人问过这个问题,但答案并没有解决我的问题。 问题是我总是在 datetime 字段中收到以下错误。

The field Created Time must be a date.

我的尝试

这是我设置日期格式的模态

[Display(Name = "Created Time")]
[DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> CreatedTime { get; set; }

查看代码

<div class="form-group">
    @Html.LabelFor(model => model.CreatedTime, "Timesheet Date")
    <div class='input-group date' id='Datetimepicker1'>
        @Html.TextBoxFor(model => model.CreatedTime, new { @class = "form-control" })
        <span class="input-group-addon"> <span class="glyphicon glyphicon-calendar"></span> </span>
    </div>
    @Html.ValidationMessageFor(model => model.CreatedTime, "", new { @class = "text-danger" })
</div>

在 js 中

$('#CreatedTime').removeAttr("data-val-date");
$('#Datetimepicker1').datetimepicker({ format: 'DD/MM/YYYY' });

也尝试改变 jquery.validate.js funcation date: function (value, element) 如下,但无法解决问题。

if ($.browser.webkit) {
    //ES - Chrome does not use the locale when new Date objects instantiated:
    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));
}

访问过的链接

The field must be a date - DatePicker validation fails in Chrome - mvc

The field date must be a date in mvc in chrome

还有更多链接和站点,但无法解决问题

最佳答案

尝试一下

将此 js 代码保留在 $(document).ready(); 之外.仅在 <script>Here</script> 内标签。

    $(function () {
        $.validator.addMethod('date',
        function (value, element) {
            if (this.optional(element)) {
                return true;
            }
            var ok = true;
            try {
                $.datepicker.parseDate('dd/mm/yy', value);
            }
            catch (err) {
                ok = false;
            }
            return ok;
        });
        $("#ID").datepicker({ dateFormat: 'dd/mm/yy', changeYear: true });
    });    

希望对您有所帮助。就我而言,它正在工作。

关于javascript - 无法在 Chrome 编辑 View 中验证日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30409533/

相关文章:

jquery - 将容器高度设置为 div 高度 + 添加 100 像素

javascript - Trello 保持更新?

javascript - chrome内存清空?

javascript - 我怎样才能使我的技能图表使用成绩字母而不是百分比?

javascript - 将内部 `[(ngModel)]` 用于通用控件?

javascript - 删除包含特定单词(如 "no"但不包含 "nothing"的单词)的单元格

php - 如何在 jquery php 中以更干净的方式发送 url?

javascript - 检查属性名称是否为数组索引

javascript - 从 Chrome 扩展程序发送发布请求(来源?)

javascript - pagehide 和 pageshow 事件在 ios chrome 上无法正常工作