我正在使用MVC2并且包含了Jquery DateTime选择器。 出于某种原因,当页面加载时它没有使用默认格式设置。
模型传入日期,我将格式设置为'dd / mm / yyyy',因为我不想显示时间。 datepicker附加到的html.editor以标准'mm / dd / yyyy hh:mm:ss'格式显示,因此如果模型值如果说'2010年10月15日',验证将启动“无效日期” ,因为标准格式抱怨没有“第15个”月。
DatePicker的代码是......
<%= Html.TextBox("", (Model.HasValue ? Model.Value.Date.ToString("dd/mm/yyyy") :
DateTime.Today.ToString("dd/mm/yyyy") ), new { @class = "date" }) %>
<script language="javascript" type="text/javascript">
$(document).ready(function() {
$("#datepicker").datepicker(
{
dateFormat: 'dd/mm/yy',
defaultDate: new Date(),
minDate: new Date()
});
});
</script>
代码调用Datepicker ...
<div>
<%=Html.LabelFor(Model => Model.StartDate)%>
<%=Html.EditorFor(Model => Model.StartDate, new { @class = "date" }) %>
<%=Html.ValidationMessageFor(Model => Model.StartDate, "*")%>
</div>
有什么想法吗?
答案 0 :(得分:0)
您是否正确设置了textBox的ID,我可以看到您有一个类“date”但不是id。
您可能还需要Google
上提供的日期选择器的本地化文件我仍然无法在你的javascript中看到选择器:
$("#datepicker")
与您的文本框相关联。选择器不应该
$('.date')
也许我错过了什么。
答案 1 :(得分:0)
似乎问题实际上是HTML.TextBox而不是实际的JQuery ......
这条线似乎是问题,
<%= Html.TextBox("", (Model.HasValue ? Model.Value.Date.ToString("dd/MMM/yyyy") :
DateTime.Today.ToString("dd/MMM/yyyy")), new { @class = "date" })%>
我按照以下方式划分了这条线,以检查不同的元素是否正常工作,它们是......
<div><%= Model.HasValue %></div>
<div><%= Model.Value.Date.ToString( "dd/MM/yyyy" ) %></div>
<div><%= DateTime.Today.ToString("dd/MM/yyyy")%></div>
所以,简单地说 - 模板中的这一行导致日期格式被忽略......任何建议?
<div><%= Html.TextBox("", Model.Value.Date.ToString("dd/MM/yyyy"))%></div>