jquery – 如何修复mvc中datetime属性上的“字段必须是日期”

前端之家收集整理的这篇文章主要介绍了jquery – 如何修复mvc中datetime属性上的“字段必须是日期”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要为我的模型属性捕获日期和时间.在我的模型课中,我有以下内容
[required]
[DataType(DataType.DateTime)]
public DateTime? CallBackDate { get; set; }

当我输入有效的日期时间(例如2015年5月28日15:55)时,我不断收到此错误.字段CallBackDate必须是日期.

我已经看到类似的问题并尝试了各种答案,但似乎没有什么可以摆脱这个.我使用不显眼的客户端验证,我无法禁用它.

输入字段的来源具有以下标记

<input autocomplete="off" class="jquery_datetimepicker form-control hasDatepicker" data-val="true" data-val-date="The field CallBackDate must be a date." data-val-required="The CallBackDate field is required." id="CallBackDate" name="CallBackDate" placeholder="Enter your CallBackDate" type="text" value="">

并且jquery日期时间选择器具有以下标记

$('.jquery_datetimepicker').datetimepicker({
    dateFormat: 'dd/mm/yy',minDate: 0,showWeeks: true,showStatus: true,highlightWeek: true,numberOfMonths: 1,showAnim: "scale",showOptions: {
        origin: ["top","left"]
    },timeFormat: 'hh:mm tt'
});

有任何想法吗?谢谢

解决方法

由于jquery.validate.unobtrusive.min.js中的MVC错误(即使在MVC 5中),它不会以任何方式接受日期/日期时间格式,因此可能会发生客户端验证问题.它不是由datepicker或浏览器引起的.不幸的是你必须手动解决它.

我最终的解决方案:

你必须包括

@Scripts.Render("~/Scripts/jquery-3.1.1.js")
@Scripts.Render("~/Scripts/jquery.validate.min.js")
@Scripts.Render("~/Scripts/jquery.validate.unobtrusive.min.js")
@Scripts.Render("~/Scripts/moment.js")

您可以使用以下命令安装moment.js:

Install-Package Moment.js

然后你最终可以为日期格式解析器添加修复:

$(function () {
    $.validator.methods.date = function (value,element) {
        return this.optional(element) || moment(value,"DD.MM.YYYY",true).isValid();
    }
});
原文链接:https://www.f2er.com/jquery/181549.html

猜你在找的jQuery相关文章