MVC JQuery Datepicker在jquery隐藏后无法触发并显示日期字段

时间:2016-11-09 16:53:25

标签: 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;" })

在我看来,我有;

<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中我显示和隐藏日期,这似乎有所不同。在另一页上,我对这个日期字段没有这个问题。

1 个答案:

答案 0 :(得分:0)

尝试

如果当前值为null

$("#datefieldid").val('');

这会改变一些事情,datapicket不喜欢null我猜