7

使用 jQuery 时如何防止显示时间.datepicker()?下面是两个属性的模型部分(拍摄日期和到期日期)

    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
    [DisplayName("Expiration Date")]
    public string ExpirationDate { get; set; }

    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
    [DisplayName("Date Taken")]
    public string DateTaken { get; set; }

使用@Html.EditorFor我正在处理的视图上的控件可以正常工作。但是,当我从此更改该控件时:

 @Html.EditorFor(model => model.DateTaken)

对此:

@Html.TextBoxFor(m => m.DateTaken, new { id = "dtkn" })

为了让它工作(标签datepicker应用了哪个控件):

<script>
    $(function () {
        $("#dtkn").datepicker('setDate');
        $("#exp").datepicker('setDate');
    });

    $.datepicker.setDefaults({
        buttonImageOnly: true,
        buttonImage: '<%=Url.Content("~/Content/images/magnify.gif") %>',
        defaultDate: -1,
        gotoCurrent: true,
        prevText: "<< Prev",
        nextText: "Next >>"
    });
</script>

突然时间开始出现。有什么建议么?

编辑

我尝试了以下格式,但没有一个可以工作:

$("#dtkn").datepicker({ dateFormat: 'dd-mm-yy' }).val();
$("#dtkn").datepicker({ dateFormat: 'yy-mm-dd' });
$("#dtkn").datepicker('getDate').format('yyyyMMdd');

还有这个:

$("#dtkn").datepicker('getDate').datepicker('dd/mm/yy');
$('#dtkn').datepicker('option', { dateFormat: 'd MM y' });

这是我在 Chrome 调试控制台看到的错误:

Uncaught TypeError: Cannot call method 'datepicker' of null 
4

3 回答 3

15

编辑:MVC4 用户可以使用这个

你想要这个重载

@Html.TextBoxFor(m => m.DateTaken, "{0:MM/dd/yyyy}", new { id="dtkn" })

如果您愿意手动放弃助手

<input type="text" value="@Model.DateTaken.ToString("MM/dd/yyyy")" id="dtkn" />
于 2013-03-29T19:50:30.520 回答
4

By using @Html.TextBox as opposed to @Html.TextBoxFor I was able to find an overload that works.

@Html.TextBox("DateTaken", Model.DateTaken.ToString("MM/dd/yyyy"), new { id = "dtkn" })
于 2013-03-29T22:36:52.563 回答
0

@Html.TextBoxFor(m => m.DateTaken,"{0:d/M/yyyy}", new { id = "dtkn" })

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d/M/yyy}")] [DisplayName("Date Taken")] public string DateTaken { get; set; }

于 2016-05-17T04:18:53.793 回答