【问题标题】:bootstrap-datepicker date is not validbootstrap-datepicker 日期无效
【发布时间】:2014-10-06 15:04:31
【问题描述】:

我将http://bootstrap-datepicker.readthedocs.org/en/release/ 用于带有引导程序的日期选择器。

    [DisplayName("Date Start")]
    [DataType(DataType.Date)]
    public DateTime? DateFrom { get; set; }


$('.datepicker').datepicker({
    format: "mm/dd/yyyy",
    autoclose: true,
    clearBtn: true
});

@Html.TextBoxFor(m => m.DateFrom, new { @class = "form-control datepicker", @placeholder = "Start Date" })
@Html.ValidationMessageFor(m => m.DateFrom)

今天是 2014 年 10 月 6 日。当我选择日期 10/13/2014 时,我看到消息“值 '10/13/2014' 对日期开始无效。”而日期 2014 年 10 月 12 日是可以的。

哪里出错了?

【问题讨论】:

  • .NET 可能将 10/13/2014 解释为 2014 年第 13 个月的第 10 天,这是无效的。它似乎期待dd/mm/yyyy 格式的日期,而不是mm/dd/yyyy
  • @Cory,哦,谢谢。是的,这有帮助!
  • 也许可以快速阅读:weblogs.asp.net/melvynharbour/mvc-modelbinder-and-localization。如果在您的应用中修复全球化设置不起作用,您可能需要编写自定义模型绑定器。

标签: asp.net-mvc twitter-bootstrap date datepicker bootstrap-datepicker


【解决方案1】:

这与文化有关。

我遇到了同样的问题,并通过使用 Globalize 库解决了它。

  • 使用 nuget 将 Globalize 0.1.3 库添加到您的项目中。

  • 然后包含文件 globalize.js 和 globalize.cultures.js

  • 然后将此代码添加到您的自定义 Js 文件中:

    $.validator.methods.date = function (value, element) {
    return this.optional(element) || Globalize.parseDate(value, "MM/dd/yyyy") !== null;
    }
    

【讨论】:

    猜你喜欢
    • 2020-06-24
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多