在JQuery隐藏并显示日期字段后,MVC JQuery Datepicker无法启动
在MVC中,我在视图的共享文件夹中使用一个编辑器模板来激活日期选择器。 所以我的Date.cshtml看起来像这样在JQuery隐藏并显示日期字段后,MVC JQuery Datepicker无法启动,jquery,asp.net-mvc,datepicker,Jquery,Asp.net Mvc,Datepicker,在MVC中,我在视图的共享文件夹中使用一个编辑器模板来激活日期选择器。 所以我的Date.cshtml看起来像这样 @model DateTime? @Html.TextBox("", Model.HasValue ? Model.Value.ToLongDateString() : string.Empty, new { @class = "datefield", type = "date", style = "width:200px;" }) <input name="Ass
@model DateTime?
@Html.TextBox("", Model.HasValue ? Model.Value.ToLongDateString() : string.Empty,
new { @class = "datefield", type = "date", style = "width:200px;" })
<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>
在我看来,我有
<td class="rightCell">
@Html.EditorFor(model => model.Assessment.SsipAccreditationDate)
@Html.ValidationMessageFor(
model => model.Assessment.SsipAccreditationDate, "*")
</td>
连接它的脚本是这样的
var initialiseDate = function() {
$(".datefield").datepicker({
showOn: "both",
dateFormat: "dd MM yy",
changeMonth: true,
changeYear: true
}).next("button.ui-datepicker-trigger")
.attr("tabIndex", "-1");
}
问题是,只有在已经有日期的时候,日期选择器才会弹出。如果该字段为空,则不会弹出
在ie开发者工具中,字段的标记如下所示
@model DateTime?
@Html.TextBox("", Model.HasValue ? Model.Value.ToLongDateString() : string.Empty,
new { @class = "datefield", type = "date", style = "width:200px;" })
<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中,我显示和隐藏日期,这似乎起到了作用。在另一个页面上,我没有这个日期字段的问题。试试看
如果当前值为空,则设置
$("#datefieldid").val('');
这将改变一切,数据纠错器不喜欢空值,我想试试看
如果当前值为空,则设置
$("#datefieldid").val('');
这将改变一切,数据纠错器不喜欢null我猜Hi Emil,我已经编辑了这个问题,因为我意识到发生这种情况的关键因素是,在jquery中,我隐藏并显示了日期字段,这造成了差异,但我不知道为什么。当我显示日期字段时,我再次调用initialiseDate函数以确保日期选择器工作,但它不工作。嗨,Emil,我编辑了这个问题,因为我意识到发生这种情况的关键因素是,在jquery中,我隐藏并显示了日期字段,这造成了差异,但我不知道为什么。当我显示日期字段时,我再次调用initialiseDate函数以确保日期选择器工作,但它不工作。