在MVC中,我在共享文件夹中使用编辑器模板为我的视图激活日期选择器。 所以我的Date.cshtml看起来像这样;
@model DateTime?
@Html.TextBox("", Model.HasValue ? Model.Value.ToLongDateString() : string.Empty,
new { @class = "datefield", type = "date", style = "width:200px;" })
在我看来,我有;
<td class="rightCell">
@Html.EditorFor(model => model.Assessment.SsipAccreditationDate)
@Html.ValidationMessageFor(
model => model.Assessment.SsipAccreditationDate, "*")
</td>
此字段在视图模型中定义为
[DataType(DataType.Date)]
[DisplayName("SSIP Accreditation Date")]
public DateTime? SsipAccreditationDate { get; set; }
加入它的脚本就是这个;
var initialiseDate = function() {
$(".datefield").datepicker({
showOn: "both",
dateFormat: "dd MM yy",
changeMonth: true,
changeYear: true
}).next("button.ui-datepicker-trigger")
.attr("tabIndex", "-1");
}
问题是只有当日期已经存在时,日期选择器才会弹出。如果该字段为空,则不会弹出。
在ie开发人员工具中,该字段的标记如下所示;
<input name="Assessment.SsipAccreditationDate" class="datefield hasDatepicker" id="Assessment_SsipAccreditationDate" style="width: 200px;" type="date" value="" data-val="true" data-val-date="The field SSIP Accreditation Date must be a date.">
<button tabindex="-1" class="ui-datepicker-trigger" type="button">...</button>
<span class="field-validation-valid" data-valmsg-replace="false" data-valmsg-for="Assessment.SsipAccreditationDate">*</span>
那出了什么问题?
编辑 - 问题的一个关键部分是在jquery中我显示和隐藏日期,这似乎有所不同。在另一页上,我对这个日期字段没有这个问题。答案 0 :(得分:0)
尝试
如果当前值为null
$("#datefieldid").val('');
这会改变一些事情,datapicket不喜欢null我猜