【问题标题】:jQuery Datepicker Passing 01/01/0001 12:00:00 AMjQuery Datepicker 传递 01/01/0001 12:00:00 AM
【发布时间】:2012-06-23 17:19:50
【问题描述】:

我在这样的视图模型中有一个 DateOfBirth 字段,

[Required]
[DataType(DataType.Date)]
[Display(Name = "Date Of Birth")]
public DateTime DateOfBirth { get; set; }

以及拥有这个的视图,

<li>
    @Html.LabelFor(m => m.DateOfBirth)
    @Html.TextBoxFor(m => m.DateOfBirth)
</li>

和一些 jQuery 来添加日期选择器,

<script type="text/javascript">
    $('#DateOfBirth').datepicker({
        yearRange: '1906:1994',
        changeMonth: true,
        changeYear: true,
        showAnim: 'bounce'
    });
</script>

如果我选择一个日期,例如 1981 年 7 月 19 日,1981 年 7 月 19 日,它会将值作为 01/01/0001 12:00:00 AM 传递给控制器​​,我收到错误“值 '07/ 19/1981' 对出生日期无效。”我注意到,如果当天的值是 12 或更少,它会通过,但如果一天高于 12,它将失败。所以我尝试将日期选择器中的格式更改为

dateFormat: 'dd/mm/yy'

然后当我提交表单时,它会给出错误“出生日期字段必须是日期”。

我需要做什么来解决这个问题?如果可能的话,我希望能够将日期显示为月/日/年。

【问题讨论】:

  • 报错是服务器端还是客户端?
  • 嗯,我认为第一个错误是服务器端,它提交然后返回错误值 '07/19/1981' 对于出生日期无效,但第二个错误显示“The字段出生日期必须是日期”似乎是客户端,因为它立即出现并且不提交表单。
  • 提交时您的日志会告诉您什么?您应该能够通过查看服务器端日志来判断问题是否存在。此外,您可以在 Chrome 调试器 NET 选项卡或 Firebug NET 选项卡中查看来自服务器的响应。
  • 我尝试在您发布的链接中添加帮助程序,并将文本框中的日期格式化为 19/07/1981。我提交时出现同样的错误,“出生日期字段必须是日期”并且不提交,只是再次加载日期选择器并提示输入另一个日期。

标签: jquery .net asp.net-mvc jquery-ui jquery-ui-datepicker


【解决方案1】:

尝试像这样使用日期时间选择器:

$("#StartDate").datetimepicker({ timeFormat: 'hh:mm:ss', dateFormat: 'dd.mm.yy' });

您可以包含来自此link 的时间选择器。我认为您提供的格式是错误的,请检查 MSDN 以获取正确的日期时间格式字符串,但在我的情况下有效。 您还可以为您的日期选择器添加正确的格式。

【讨论】:

  • 你是说操作也必须有一个时间选择器才能使其工作?
  • 我也想知道这个。如果可能的话,我宁愿不必拥有它。我只需要一个简单的约会。
  • @user1066133 - 您是否尝试将日期格式从dateFormat: 'dd/mm/yy' 设置为dateFormat: 'dd.mm.yy',就像在 Floradu 的示例中一样?您很可能不需要时间选择器,并且您只是代表您的 Dateformat 错误。此外,Floradu 应该在他的答案中包含他的 NET 服务器端绑定,以使其完整。如果您在服务器端使用不同的对象,也可能会影响结果。
  • 刚刚尝试将其更改为您建议的格式,我收到相同的客户端验证错误“出生日期字段必须是日期”,它再次加载日期选择器以提示输入有效日期...
【解决方案2】:

不要提yearRange,试试minDate,maxDate之类的

minDate: new Date(1906,0,1),
maxDate: new Date(1994,11,31)

【讨论】:

  • 奇怪的是,现在当我从 datepicker 中选择 Year 下拉菜单时,当我使用 minDate/maxDate 和这些值时,它只会给我 1984-1994。
  • 我认为只显示前 10 年。在下拉列表中选择 1984,它将显示下一个 10 年列表,依此类推...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-29
  • 1970-01-01
  • 2017-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多