【问题标题】:Remove time from ASP MVC @Html.TextBoxFor Control using jQuery datepicker使用 jQuery datepicker 从 ASP MVC @Html.TextBoxFor 控件中删除时间
【发布时间】:2013-03-20 10:25:16
【问题描述】:

使用 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 

【问题讨论】:

标签: jquery asp.net-mvc asp.net-mvc-3 datepicker


【解决方案1】:

编辑: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" />

【讨论】:

  • 我收到错误No overload for method 'TextBoxFor' takes 3 arguments
  • 抱歉,错过了 MVC3。试试stackoverflow.com/questions/5972536/…
  • 如果您不想弄乱现有的标记和/或视图模型,这似乎是最敏感的方法
【解决方案2】:

通过使用@Html.TextBox 而不是@Html.TextBoxFor,我能够找到一个有效的重载。

@Html.TextBox("DateTaken", Model.DateTaken.ToString("MM/dd/yyyy"), new { id = "dtkn" })

【讨论】:

    【解决方案3】:

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

    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d/M/yyy}")] [显示名称(“拍摄日期”)] 公共字符串 DateTaken { 获取;放; }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多